如何将新页签添加到帖子管理员列表和处理结果列表

时间:2013-12-02 作者:Cookie Monster

Admin links

目标是在单独的选项卡中显示具有自定义字段(post meta)特殊值的帖子。我知道如何添加新选项卡,下面是一个代码:

add_action( \'views_edit-post\', \'remove_edit_post_views\' );
function remove_edit_post_views( $views ) {
        $views[\'pre\'] = \'<a class="\'.$class.\'" href="\'.admin_url().\'edit.php?yourlink">Name of Sort</a>\';
        return $views;
}
但我不知道如何以及在哪里过滤帖子。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

可以像前端查询一样使用pre_get_posts 并检查is_admin.

add_action( \'views_edit-post\', \'remove_edit_post_views\' );
function remove_edit_post_views( $views ) {
    $views[\'pre\'] = \'<a href="\'.admin_url().\'edit.php?pre=pre">My Special Posts</a>\';
    return $views;
}

add_action(\'pre_get_posts\', \'my_special_list\');

function my_special_list( $q ) {
  $scr = get_current_screen();
  if ( is_admin() && ( $scr->base === \'edit\' ) && $q->is_main_query() ) {
    // To target only a post type uncomment following line and adjust post type name
    // if ( $scr->post_type !== \'post\' ) return;
    // if you change the link in function above adjust next line accordingly
    $pre = filter_input(INPUT_GET, \'pre\', FILTER_SANITIZE_STRING);
    if ( $pre === \'pre\' ) {
      // adjust meta query to fit your needs
      $meta_query = array( \'key\' => \'is_special\', \'value\' => \'yes\', );
      $q->set( \'meta_query\', array($meta_query) );
    }
  }
}

结束

相关推荐

Tags Sorted By Characters?

如果我在一篇文章中放置了多个标签,那么在发布文章后,所有标签都会按字符序列自动排列,比如B C D。。。任何想法,如果我希望有所有的标签将不会排序或按字符序列排列。。。。所以,第一个标签将是第一个,最后一个标签将放置在最后。。。尽管第一个标记可能以Z开头,最后一个标记以A开头。。那么,我所说的保持标签序列静态的方法是什么呢?