在 WordPress 后台添加自定义字段筛选文章功能

知更鸟 2021年7月8日15:13:13
评论
2874

WordPress 后台文章列表,默认只有按日期、分类、形式筛选文章,有时想把一些添加了某个自定义字段的文章,从众多文章中找出来,还真是个难事,可以通过下面的代码,在 WordPress 后台添加按自定义字段筛选文章的功能,这样就简单了。

在 WordPress 后台添加自定义字段筛选文章功能

将下面代码添加到当前主题函数模板functions.php即可:

展开收缩
// 按自定义字段筛选文章
add_filter( 'parse_query', 'zm_posts_filter' );
add_action( 'restrict_manage_posts', 'zm_filter_field' );

function zm_posts_filter( $query ) {
	global $pagenow;
	if ( is_admin() && $pagenow=='edit.php' && isset( $_GET['ZMINGCX_FILTER_FIELD']) && $_GET['ZMINGCX_FILTER_FIELD'] != '' ) {
		$query->query_vars['meta_key'] = $_GET['ZMINGCX_FILTER_FIELD'];
	if ( isset($_GET['ZMINGCX_FIELD_VALUE'] ) && $_GET['ZMINGCX_FIELD_VALUE'] != '' )
		$query->query_vars['meta_value'] = $_GET['ZMINGCX_FIELD_VALUE'];
	}
}

function zm_filter_field() {
	global $wpdb;
	$sql = 'SELECT DISTINCT meta_key FROM '.$wpdb->postmeta.' ORDER BY 1';
	$fields = $wpdb->get_results( $sql, ARRAY_N );
?>
<select name="ZMINGCX_FILTER_FIELD">
<option value=""><?php _e( '自定义字段', 'zm' ); ?></option>
<?php
	$current = isset( $_GET['ZMINGCX_FILTER_FIELD'] )? $_GET['ZMINGCX_FILTER_FIELD']:'';
	$current_v = isset( $_GET['ZMINGCX_FIELD_VALUE'] )? $_GET['ZMINGCX_FIELD_VALUE']:'';
	foreach ( $fields as $field ) {
		if ( substr($field[0],0,1) != "_" ){
		printf
			(
				'<option value="%s"%s>%s</option>',
				$field[0],
				$field[0] == $current? ' selected="selected"':'',
				$field[0]
			);
		}
	}
?>
</select> <?php _e( '值', 'zm' ); ?> <input type="TEXT" name="ZMINGCX_FIELD_VALUE" value="<?php echo $current_v; ?>" />
<?php
}

最终效果:

在 WordPress 后台添加自定义字段筛选文章功能

 

 

代码出处

文章源自知更鸟 | 崇尚专注 追求极致 分享交流WordPress经验与技巧,关注前端设计与网站制作,打造自己专属的WordPress主题,让你的博客与众不同!
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
按 WordPress 分类展示文章列表 WordPress

按 WordPress 分类展示文章列表

通过下面的代码可以实现WordPress文章按分类展示文章列表,将代码放在分类归档页面,当该分类有子分类时,则显示子分类文章列表,无子分类则显示该分类列表,将代码放在首页,则所有文章按分类以列表形式展...
为 WordPress 页面链接添加一个固定的父级目录 WordPress

为 WordPress 页面链接添加一个固定的父级目录

WordPress分类可以设置父子分类,并在链接中显示层级,同样页面也可以选择父级页面形成层级,如果只想单纯在页面链接加中加一个固定的父级目录,同时添加伪静态后缀.html,可以参考之前的: 上面文章...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定