【问题标题】:hook or filter on post show在秀后挂钩或过滤
【发布时间】:2017-03-20 17:54:39
【问题描述】:

我应该使用什么钩子/过滤器来不在我的博客上显示某些帖子(例如,如果帖子是在去年写的。) 我想在模板中使用钩子/过滤器而不是代码,因此插件或 rss 提要无法访问它

【问题讨论】:

    标签: php wordpress feed wordpress-hook


    【解决方案1】:

    你可以使用pre_get_posts()动作,这个钩子在之后被调用 创建查询变量对象,但在实际查询之前 跑。所以你可以在不同的条件下使用它。

    这里是示例代码:

    function wh_getThisYearPost($query)
    {
        if (($query->is_home()) //<-- for home page
            || $query->is_feed() //for feed
            || $query->is_search() // for search
        )
        {
            //to get post from current year only.
            $query->set('year', date('Y'));
        }
    }
    
    add_action('pre_get_posts', 'wh_getThisYearPost');
    

    代码进入您的活动子主题(或主题)的 function.php 文件中。或者也可以在任何插件 php 文件中。

    请注意:以上代码不适用于您已在这些查询中手动添加 Date Parameters 的自定义 WP_Query

    希望这会有所帮助!

    【讨论】:

    • 我的年份在 acf 文件中。我还能用这个吗?
    • @user186585:是的,用你的 ACF 替换 date('Y'),但日期格式应该是 YYYY ex。 2017.
    • 您希望这个仅用于特定的post_type 存档页面?
    • 我的问题在全局搜索结果中
    • 哦,这意味着您希望无论何时用户搜索它都应该获得属于特定post_type 的帖子,并且这些帖子是在特定年份发布的,对吧?如果是这样,那么是的,这是可以实现的。
    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多