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

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

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 后台添加自定义字段筛选文章功能

 

 

代码出处

weinxin
版权声明
本站原创文章转载请注明文章出处
批量替换WordPress文章中的文字 WordPress

批量替换WordPress文章中的文字

如果准备替换修改散布在大量WordPress文章中的相同文字,手动编辑文章修改工作量大,可以用下面的代码实现批量替换,会用到WordPress的操作数据常量$wpdb修改数据库,不需要登录数据库操作。...
为WordPress 分类文章添加访问权限 WordPress

为WordPress 分类文章添加访问权限

一些发表过的分类文章不想让别人看,仅允许管理员自己查看,可以用下面的代码实现: 为WordPress 分类文章添加访问权限 将代码添加到当前主题函数模板functions.php中: // 分类文章访...
WordPress 5.8开始将不再支持IE11浏览器 WordPress

WordPress 5.8开始将不再支持IE11浏览器

IE11浏览器已发布7年多,目前只有不到1% 用户,很多热门网站已经停止支持IE11,微软也将在今年晚些时候放弃对IE11的支持。即将在今年7月发布的WordPress 5.8也将不再支持IE11浏览...
匿名

发表评论

匿名网友

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