如何使用自定义字段在自定义帖子类型上启用粘滞帖子?

时间:2014-01-24 作者:Daniel Dropik

Background: Wordpress Answers网站有两个问题,询问如何在自定义帖子类型上启用粘性帖子(请参阅how to make custom posts sticky?Enable sticky posts to custom post_type ). 这两个问题都提到了trac罚单(https://core.trac.wordpress.org/ticket/12702 ).

提供的答案(对我上面提到的问题的回答)表达了使用自定义帖子类型和元框的可能性。不幸的是,这些答案的详细程度对我没有帮助(而且,我目前没有足够的声誉来评论进一步的澄清)。

My Goal: 我正在使用custom post type ui pluginthe advanced custom fields plugin 显示员工档案CPT。我的一个页面列出了所有员工档案,但客户希望某些档案贴在顶部。我已经检查了两个可能的插件来帮助我(seamless sticky custom post typessticky custom post types). 不幸的是,这些插件似乎只在主页上输出粘性帖子。

出于我的目的,粘滞功能应该只应用于列出所有员工档案的专用页面模板,而不是主页。

Question Restatement: 对我来说,似乎最好的解决方案是以某种方式使用自定义字段来实现所需的结果。这是正确的吗?如果是这样的话,请告诉我任何可能有帮助的wordpress模板标记、技术、示例或教程。

1 个回复
SO网友:Olivier

您可以通过ACF.

为自定义帖子类型创建一个自定义字段复选框(只是一个简单的布尔值)。下面是重写存档模板中的主循环的示例:

function order_cpt_by_stickyness( $query ) {
    if(!is_admin() && $query->is_main_query() && is_post_type_archive(\'my_custom_postype\')) {
        $query->set( \'meta_key\', \'my_sticky_custom_field\');
        $query->set( \'orderby\', [\'meta_value\' => \'DESC\', \'date\' => \'DESC\']);
    }
}
add_filter( \'pre_get_posts\', \'order_cpt_by_stickyness\' );

结束