Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 后端的Wordpress页面,带有过滤后的元值的列表_Php_Wordpress - Fatal编程技术网

Php 后端的Wordpress页面,带有过滤后的元值的列表

Php 后端的Wordpress页面,带有过滤后的元值的列表,php,wordpress,Php,Wordpress,我在用Wordpress试试。我想使用page作为自定义内容的shell,因此我设置了一个操作,为每个常规页面添加一个特定的meta_键,这样我就可以从“特殊页面”中挑出常规页面 function addMetaToPage($post_id) { if ( wp_is_post_revision( $post_id ) ) return; if(get_post_type($post_id) == 'page') { add_post_meta($post_id, '

我在用Wordpress试试。我想使用
page
作为自定义内容的shell,因此我设置了一个操作,为每个常规页面添加一个特定的
meta_键
,这样我就可以从“特殊页面”中挑出常规页面

function addMetaToPage($post_id) {
  if ( wp_is_post_revision( $post_id ) )
    return;

  if(get_post_type($post_id) == 'page') {
    add_post_meta($post_id, '_regular_page', 1, true);
  }
}

if(is_admin()) {
  add_action('save_post', 'addMetaToPage');
}
然后,在列出页面的管理后端,我运行这个钩子来防止我所有的“特殊页面”出现

if(is_admin()) {
  add_action('pre_get_posts', function($query) {
    $query->set('meta_key', '_regular_page');
    $query->set('meta_value', 1);
  });
}
它是有效的。只有带有meta
\u常规页面的页面才会显示。但是,表格上方的计数器通常显示的是
All(15)
之类的内容,显示的是总页数,即使列表中只有几页。在这个页面上,我得到了4个常规页面和6个没有
\u常规\u页面
元键的页面


有没有办法解决这个问题?我真的认为计数器依赖于WP_查询,但显然不是。

您可以使用过滤器
视图\u编辑页面
你可以用这样的东西

 add_filter( "views_edit-page", "filter_regular_page_count", 10, 1); 

 function filter_regular_page_count( $views ) {
     $regular_post_count = 5 ;// you can sort out how to get your regular post count

        $views["all"] = '<a href="edit.php?post_type=page" class="current">All <span class="count">('.$regular_post_count.')</span></a>';
add_filter(“视图编辑页面”、“过滤器常规页面计数”),10,1);
函数过滤器\常规\页面\计数($views){
$regular\u post\u count=5;//您可以选择如何获得常规的post计数
$views[“全部”]='';
//同样适用于已发布和垃圾 返回$views;
}

下面是视图的var转储示例

array (size=3)
  'all' => string '<a href='edit.php?post_type=page' class="current">All <span class="count">(7)</span></a>' (length=88)
  'publish' => string '<a href='edit.php?post_status=publish&amp;post_type=page'>Published <span class="count">(7)</span></a>' (length=102)
  'trash' => string '<a href='edit.php?post_status=trash&amp;post_type=page'>Trash <span class="count">(2)</span></a>' (length=96)
数组(大小=3)
“全部”=>字符串“”(长度=88)
“发布”=>字符串“”(长度=102)
“垃圾”=>字符串“”(长度=96)
如果你想对帖子做同样的事情,WordPress会对帖子使用
views\u edit-post
filter

实际上wordpress使用这样的东西作为视图部分的过滤器-->
views\u{$this->screen->id}