Joh*_*nes 1 php wordpress custom-post-type
在 WordPress 页面模板中,我设置了一个 WP 自定义查询,该查询查询名为“recipe”的自定义帖子类型和常规帖子,如下所示。这可行,但'orderby => 'date'在那里不起作用:页面首先列出按日期排序的常规帖子,然后按日期列出食谱。但我需要将它们全部放在一起(即混合)并按日期排序。
这是我的自定义查询的定义:
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$number_of_posts = get_option('posts_per_page', 12);
$args = array(
    'post_type' => array('recipe', 'post'),
    'post_status' => 'publish',
    'posts_per_page' => 12,
    'orderby' => 'date',
    'order' => 'ASC',
    'paged' => $paged
);
$my_loop = new WP_Query($args);
[...followed by the loop...]
我很感激任何提示我可以做什么来实现所需的排序。
我自己找到了解决方案:
当我remove_all_filters('posts_orderby');在定义自定义查询之前添加时它会起作用。显然,这会重置任何其他顺序并允许其'orderby' => 'date'按预期运行。完整代码:
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$number_of_posts = get_option('posts_per_page', 12);
remove_all_filters('posts_orderby'); // ADDED
$args = array(
    'post_type' => array('recipe', 'post'),
    'post_status' => 'publish',
    'posts_per_page' => 12,
    'orderby' => 'date',
    'order' => 'ASC',
    'paged' => $paged
);
$my_loop = new WP_Query($args);
[...]