wordpress默认的标签云小工具不好用。所以,我这里跟大家分享一下我使用成功了的“标签云”代码,希望对需要的朋友有所帮助。下面就是完整的代码。
<?php class iebase_widget_tags extends WP_Widget { function __construct() { $widget_ops = array( 'classname' => 'iebase_widget_tags' , 'description' => esc_html__( 'Tags' , 'iebase' ) ); parent::__construct( 'widget_touchsize_tags' , esc_html__( 'Tags' , 'iebase' ) , $widget_ops ); } function widget( $args , $instance ) { /* prints the widget*/ extract($args, EXTR_SKIP); if( isset( $instance['title'] ) ){ $title = $instance['title']; }else{ $title = ''; } if( isset( $instance['nr_tags'] ) ){ $nr_tags = $instance['nr_tags']; }else{ $nr_tags = 0; } echo iebase_var_sanitize($before_widget, 'the_kses'); if( !empty( $title ) ){ echo iebase_var_sanitize($before_title . $title . $after_title, 'the_kses'); } ?> <!-- panel tags --> <div class="tab_menu_content tags-container"> <?php if($nr_tags != 0){ $args = array('number' => $nr_tags, 'orderby' => 'count', 'order' => 'DESC'); $tags = get_tags($args); }else{ $tags = get_tags(); } if( !empty( $tags ) && is_array( $tags ) ){ foreach( $tags as $tag ){ $tag_link = get_tag_link( $tag->term_id ); ?><a class="tag" href="<?php echo esc_url($tag_link) ?>"> <?php echo airkit_var_sanitize($tag->name, 'esc_attr'); ?></a><?php } }else{ echo '<p>' . esc_html__( 'There are no tags.' , 'iebase' ) . '</p>'; } ?> </div> <?php echo iebase_var_sanitize($after_widget, 'the_kses'); } function update( $new_instance, $old_instance) { /*save the widget*/ $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['nr_tags'] = strip_tags( $new_instance['nr_tags'] ); return $instance; } function form($instance) { /* widget form in backend */ $instance = wp_parse_args( (array) $instance, array( 'title' => '' , 'nr_tags' => '') ); $title = strip_tags( $instance['title'] ); $nr_tags = strip_tags( $instance['nr_tags'] ); ?> <p> <label for="<?php echo iebase_var_sanitize($this->get_field_id('title'), 'esc_attr'); ?>"><?php esc_html_e('Title','iebase') ?>: <input class="widefat" id="<?php echo iebase_var_sanitize($this->get_field_id('title'), 'esc_attr'); ?>" name="<?php echo iebase_var_sanitize($this->get_field_name('title'), 'esc_attr'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /> </label> </p> <p> <label for="<?php echo iebase_var_sanitize($this->get_field_id('nr_tags'), 'esc_attr'); ?>"><?php esc_html_e( 'Number of tags' , 'iebase' ); ?>: <input class="widefat digit" id="<?php echo iebase_var_sanitize($this->get_field_id('nr_tags'), 'esc_attr'); ?>" name="<?php echo iebase_var_sanitize($this->get_field_name('nr_tags'), 'esc_attr'); ?>" type="text" value="<?php echo esc_attr( $nr_tags ); ?>" /> <span class="hint"><?php esc_html_e('Leave blank to show all tags','iebase' ) ?></span> </label> </p> <?php } } ?>
然后我们注册一下这个小工具
if ( !function_exists( 'iebase_widgets_register' ) ) { function iebase_widgets_register() { // Register Widgets if ( class_exists( 'iebase_widget_tags' ) ) { register_widget( 'iebase_widget_tags' ); } } } add_action( 'widgets_init', 'iebase_widgets_register' );
- 提示:这篇文章发布于 2020/02/05,作者 99839,总计 2724 字.
- 原文: 主题开发教程:如何自定义标签云小工具 | 爱壹主题