在管理中添加指向所有帖子的特殊过滤器链接

时间:2012-02-28 作者:hookedonwinter

我的网站首页上有一个特色帖子滑块。它显示n 类别中的帖子(目前有5篇)featured. 如果我在该类别中有5篇文章,并发布了第6篇,那么这6篇文章中最老的一篇不会显示在滑块中或最近所有文章的列表下方。我现在的解决方案是转到所有帖子>发布>特色,选择一个取消特色,然后继续我的生活。

我会采纳更好的解决方案的建议(修复特色滑块可能是一个不错的回答),但我在这里寻找的是一种向所有帖子添加链接的方法,该链接将显示所有已发布的特色帖子。

enter image description here

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

首先,在你的图片中,你可以看到WordPress允许你按类别过滤帖子,只需大声说出你在图片中添加了什么,但是如果你想知道如何将自己的链接添加到过滤器中,你可以使用views_edit-post 过滤器挂钩ex:

add_action(\'pre_get_posts\', \'query_add_filter\' );
function query_add_filter( $wp_query ) {
    if( is_admin()) {
        add_filter(\'views_edit-post\', \'Add_My_filter\');
    }
}

// add filter
function Add_My_filter($views) {
    global $wp_query;
    unset($views[\'mine\']);
    $my_cat = YOUR-CAT-ID

    $query = array(
        \'author\'      => $current_user->ID,
        \'post_type\'   => \'post\',
        \'post_status\' => \'publish\',
    \'cat\'         => $my_cat
    );
    $result = new WP_Query($query);
    $class = ($wp_query->query_vars[\'cat\'] == \'featured\') ? \' class="current"\' : \'\';
    $views[\'publish_f\'] = sprintf(__(\'<a href="%s"\'. $class .\'>Publish Featured <span class="count">(%d)</span></a>\', \'publish featured\'),
        admin_url(\'edit.php?post_status=publish&post_type=post&cat=\'.$my_cat),
        $result->found_posts);

    return $views;
}
你一定要换衣服YOUR-CAT-ID 到实际类别id

结束

相关推荐

Trim posts from WP-Query?

我希望在我的首页上显示一些由以下标准确定的帖子:显示当月的所有帖子(实际上是从最近帖子对应的月份开始);但是如果这个数字少于(比如)8,那么就显示最近的8篇帖子。假设我知道每个月都不会有超过(比如)20篇文章,我会将posts\\u per\\u page设置为20,通常抓取最近的20篇文章,然后在php中进行适当的修剪(切片)。(在SQL中这样做似乎太复杂了)顺便说一句:起初我以为add_filter( \'posts_results\', ... ) 这很合适,但很难区分查询是与主循环相对应,还是与其