WordPress分类目录小工具详解

WordPress分类目录小工具用来在网站侧边栏展示网站的分类目录列表。WordPress分类目录也是WordPress自带小工具之一,使用非常广泛,我们都喜欢在侧边栏展示我们网站的文章分类列表。让用户更好的了解我们的网站。

WordPress分类目录小工具
图1 WordPress分类目录小工具

WordPress分类目录小工具使用介绍

在网站【后台-外观-小工具】中找到分类目录,将它拖到想要展示的侧边栏中。

WordPress分类目录设置
图2 WordPress分类目录设置

WordPress分类目录设置包括:
1.设置分类目录显示标题
2.设置分类目录是否以下拉菜单显示
3.设置分类目录是否显示分类文章数量
4.设置分类目录是否体现分类之间的层级关系
我们根据自己的喜好设置好分类目录,保存,到前端查看效果。

WordPress分类目录小工具前端展示

WordPress分类目录小工具前端预览
图3 WordPress分类目录小工具前端预览

WordPress分类以列表的形式展示网站的文章分类:

<div id="categories-2" class="widget widget_categories">
   <h3 class="widget-title">分类目录</h3>
   <ul>
    <li class="cat-item cat-item-2"><a href="http://www.wptoutiao.com/themes" title="WordPress头条推荐优秀的Wordpress博客、CMS、企业、网店、图片等主题,包括免费WordPress主题下载,收费WordPress主题购买,以及定制WordPress主题等服务,打造原创优质的主题推荐平台。">WordPress主题</a> (7)</li>
    <li class="cat-item cat-item-150"><a href="http://www.wptoutiao.com/jiaohu" title="WordPress交互设计分享WordPress用户交互方面的教程和经验,包括用户体验,用户交互,网站设计。让你的网站更符合用户使用习惯。">WordPress交互设计</a> (1)</li>
    <li class="cat-item cat-item-9"><a href="http://www.wptoutiao.com/functions" title="WordPress官方提供了大量的函数,方便我们增加和扩展WordPress功能,下面整理了部分常用的函数,组成WordPress函数参考手册,方便你快速查找和使用!">WordPress函数</a> (19)</li>
    <li class="cat-item cat-item-1"><a href="http://www.wptoutiao.com/blog" title="WordPress头条官方博客,发布我们的发展动态,最新活动,以及网站通知等内容!想更加了解我们,请关注这里!">WordPress头条博客</a> (6)</li>
    <li class="cat-item cat-item-62"><a href="http://www.wptoutiao.com/tuijian" title="WordPress头条收录基于WordPress的精品网站,推荐给广大站长,我们可以从这些好站可以学习他们的架构、设计以及和网站建设相关的技巧!">WordPress好站推荐</a> (19)</li>
    <li class="cat-item cat-item-68"><a href="http://www.wptoutiao.com/widgets" title="WordPress小工具是WordPress侧边栏的重要内容来源,WordPress小工具详解给大家介绍WordPress自带小工具,如何修改小工具,以及如何开发小工具">WordPress小工具详解</a> (2)</li>
    <li class="cat-item cat-item-6"><a href="http://www.wptoutiao.com/websites" title="分享WordPress建站教程,以及建站相关的文章">WordPress建站</a> (1)</li>
    <li class="cat-item cat-item-5"><a href="http://www.wptoutiao.com/plugins" title="插件使得WordPress更具扩充性,更具灵活性,我们推荐最好用,最实用的WordPress插件给大家,分享我们原创的插件供大家免费使用。">WordPress插件</a> (12)</li>
    <li class="cat-item cat-item-48"><a href="http://www.wptoutiao.com/tutorial" title="WordPress教程,轻松学习WordPress基础知识,轻松掌握WordPress使用技巧,轻松搭建WordPress网站!">WordPress教程</a> (25)</li>
    <li class="cat-item cat-item-21"><a href="http://www.wptoutiao.com/newcomer" title="WordPress新手入门指南,包括WordPress简介、安装、后台功能介绍以及基础设置等,帮助新手朋友快速了解WordPress。">WordPress新手入门</a> (11)</li>
    <li class="cat-item cat-item-3"><a href="http://www.wptoutiao.com/news" title="我们关注WordPress官方新闻,新版发布,最新动态,提供第一手的WordPress官方以及周边资讯!">WordPress资讯</a> (8)</li>
   </ul>
  </div>

WordPress分类目录小工具源码

下面我们来看看源码:
源码位置:wp-includes\widgets\class-wp-widget-categories.php
源代码:(since 4.4.0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<?php
/**
 * Widget API: WP_Widget_Categories class
 *
 * @package WordPress
 * @subpackage Widgets
 * @since 4.4.0
 */
 
/**
 * Core class used to implement a Categories widget.
 *
 * @since 2.8.0
 *
 * @see WP_Widget
 */
class WP_Widget_Categories extends WP_Widget {
 
	/**
	 * Sets up a new Categories widget instance.
	 *
	 * @since 2.8.0
	 * @access public
	 */
	public function __construct() {
		$widget_ops = array(
			'classname' => 'widget_categories',
			'description' => __( 'A list or dropdown of categories.' ),
			'customize_selective_refresh' => true,
		);
		parent::__construct( 'categories', __( 'Categories' ), $widget_ops );
	}
 
	/**
	 * Outputs the content for the current Categories widget instance.
	 *
	 * @since 2.8.0
	 * @access public
	 *
	 * @param array $args     Display arguments including 'before_title', 'after_title',
	 *                        'before_widget', and 'after_widget'.
	 * @param array $instance Settings for the current Categories widget instance.
	 */
	public function widget( $args, $instance ) {
		static $first_dropdown = true;
 
		/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
		$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
 
		$c = ! empty( $instance['count'] ) ? '1' : '0';
		$h = ! empty( $instance['hierarchical'] ) ? '1' : '0';
		$d = ! empty( $instance['dropdown'] ) ? '1' : '0';
 
		echo $args['before_widget'];
		if ( $title ) {
			echo $args['before_title'] . $title . $args['after_title'];
		}
 
		$cat_args = array(
			'orderby'      => 'name',
			'show_count'   => $c,
			'hierarchical' => $h
		);
 
		if ( $d ) {
			$dropdown_id = ( $first_dropdown ) ? 'cat' : "{$this->id_base}-dropdown-{$this->number}";
			$first_dropdown = false;
 
			echo '<label class="screen-reader-text" for="' . esc_attr( $dropdown_id ) . '">' . $title . '</label>';
 
			$cat_args['show_option_none'] = __( 'Select Category' );
			$cat_args['id'] = $dropdown_id;
 
			/**
			 * Filter the arguments for the Categories widget drop-down.
			 *
			 * @since 2.8.0
			 *
			 * @see wp_dropdown_categories()
			 *
			 * @param array $cat_args An array of Categories widget drop-down arguments.
			 */
			wp_dropdown_categories( apply_filters( 'widget_categories_dropdown_args', $cat_args ) );
			?>
 
<script type='text/javascript'>
/* <![CDATA[ */
(function() {
	var dropdown = document.getElementById( "<?php echo esc_js( $dropdown_id ); ?>" );
	function onCatChange() {
		if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) {
			location.href = "<?php echo home_url(); ?>/?cat=" + dropdown.options[ dropdown.selectedIndex ].value;
		}
	}
	dropdown.onchange = onCatChange;
})();
/* ]]> */
</script>
 
<?php
		} else {
?>
		<ul>
<?php
		$cat_args['title_li'] = '';
 
		/**
		 * Filter the arguments for the Categories widget.
		 *
		 * @since 2.8.0
		 *
		 * @param array $cat_args An array of Categories widget options.
		 */
		wp_list_categories( apply_filters( 'widget_categories_args', $cat_args ) );
?>
		</ul>
<?php
		}
 
		echo $args['after_widget'];
	}
 
	/**
	 * Handles updating settings for the current Categories widget instance.
	 *
	 * @since 2.8.0
	 * @access public
	 *
	 * @param array $new_instance New settings for this instance as input by the user via
	 *                            WP_Widget::form().
	 * @param array $old_instance Old settings for this instance.
	 * @return array Updated settings to save.
	 */
	public function update( $new_instance, $old_instance ) {
		$instance = $old_instance;
		$instance['title'] = sanitize_text_field( $new_instance['title'] );
		$instance['count'] = !empty($new_instance['count']) ? 1 : 0;
		$instance['hierarchical'] = !empty($new_instance['hierarchical']) ? 1 : 0;
		$instance['dropdown'] = !empty($new_instance['dropdown']) ? 1 : 0;
 
		return $instance;
	}
 
	/**
	 * Outputs the settings form for the Categories widget.
	 *
	 * @since 2.8.0
	 * @access public
	 *
	 * @param array $instance Current settings.
	 */
	public function form( $instance ) {
		//Defaults
		$instance = wp_parse_args( (array) $instance, array( 'title' => '') );
		$title = sanitize_text_field( $instance['title'] );
		$count = isset($instance['count']) ? (bool) $instance['count'] :false;
		$hierarchical = isset( $instance['hierarchical'] ) ? (bool) $instance['hierarchical'] : false;
		$dropdown = isset( $instance['dropdown'] ) ? (bool) $instance['dropdown'] : false;
		?>
		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title:' ); ?></label>
		<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /></p>
 
		<p><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('dropdown'); ?>" name="<?php echo $this->get_field_name('dropdown'); ?>"<?php checked( $dropdown ); ?> />
		<label for="<?php echo $this->get_field_id('dropdown'); ?>"><?php _e( 'Display as dropdown' ); ?></label><br />
 
		<input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>"<?php checked( $count ); ?> />
		<label for="<?php echo $this->get_field_id('count'); ?>"><?php _e( 'Show post counts' ); ?></label><br />
 
		<input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('hierarchical'); ?>" name="<?php echo $this->get_field_name('hierarchical'); ?>"<?php checked( $hierarchical ); ?> />
		<label for="<?php echo $this->get_field_id('hierarchical'); ?>"><?php _e( 'Show hierarchy' ); ?></label></p>
		<?php
	}
 
}

(完)

版权声明WordPress头条正在使用WordPress文章版权插件
如未注明,均为原创,转载需注明出处
本文链接地址:http://www.wptoutiao.com/widgets/445.html

分类目录的相关文章

小工具的相关文章

还可以分享文章给好友:

发表评论

电子邮件地址不会被公开。 必填项已用*标注