Php 在单个模板页面上运行查询之前更改$wp_查询参数

Php 在单个模板页面上运行查询之前更改$wp_查询参数,php,wordpress,Php,Wordpress,我正在运行BeTheme,但添加了自定义帖子类型。在index.php上,我需要从我创建的常规帖子和自定义帖子类型“最新消息”中提取信息。我不确定如何设置它,以便index.php同时从我的帖子和自定义帖子类型中提取 在我的主题中,index.php是从这个模板文件的函数中提取的 在本文件第10行开始的部分中: if( ! function_exists('mfn_content_post') ){ function mfn_content_post( $query = false, $styl

我正在运行BeTheme,但添加了自定义帖子类型。在index.php上,我需要从我创建的常规帖子和自定义帖子类型“最新消息”中提取信息。我不确定如何设置它,以便index.php同时从我的帖子和自定义帖子类型中提取

在我的主题中,index.php是从这个模板文件的函数中提取的

在本文件第10行开始的部分中:

if( ! function_exists('mfn_content_post') ){
function mfn_content_post( $query = false, $style = false, $images_only = false ){
    global $wp_query;
我很确定我需要更改
$args
变量
$wp\u query
所提取的内容,以便
数组('post\u type'=>array('post')
也有
'latest-news'
,但我不确定在哪里可以找到它,或者这是否是正确的方法

编辑: 我刚刚尝试将以下代码添加到
functions.php

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'latest-news') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );
这不起作用。

文件第21行:

if( ! $query ) $query = $wp_query;
尝试将其编辑为

$args=[
'post_type' => ['post', 'latest-news'],
];
if( ! $query ) $query = new WP_Query( $args );

让我知道这是否有效,取决于它可能产生意外结果的时间。

这是正确的方法。您希望新查询也搜索常规帖子还是只搜索自定义帖子类型?两者都有。理想情况下,它将同时从“帖子”和“最新新闻”帖子类型中提取,并按日期排序。这不起作用,它破坏了网站。灵感来源于yo在回答这个问题时,我试着将行改为:
$args['post\u type']='“post”,“latest news”;
如果(!$query)$query=new WP\u query($args);
也不起作用,尽管它不会破坏网站,但只会使其不显示帖子。
我在后面漏了一个分号],试着将其改为$args=['post\u type'=>['post','news']]
如果这破坏了网站或改变了任何有效的东西,请告诉我!谢谢!我也应该发现这个错误,但我真的很感谢你的帮助。没问题,很高兴它帮助了你!如果它解决了你的问题,请接受我的回答,我将不胜感激。祝项目好运!这只是更改了
“post\u type”
值还是整个$args变量?因为当我转到,比如说,/category/category name时,它不再只显示该类别中的帖子,而是显示所有帖子。(不是责备你或其他什么,我应该在我的问题中更清楚,因为你提供的答案在技术上是有效的,但它只是指出了我必须解决的另一个问题)