我正在开发一个WordPress,它是由其他人启动然后消失的。她使用不同的插件创建了一些自定义内容类型和变量,现在我想访问她为模板创建的函数中的数据集。
$args = array(
\'suppress_filters\' => 0,
\'posts_per_page\' => -1,
\'sort_order\' => \'ASC\',
\'sort_column\' => \'post_title\',
\'post_type\' => \'inst\',
\'post_status\' => \'publish\'
);
$content = get_posts($args);
我一直在四处寻找,不同的发现建议使用以下变量来使用SQL:
echo $GLOBALS[\'wp_query\']->request;
但是,它返回的不是显示页面上显示的post数据的查询。当我直接在MySQL中运行时,它只返回1个结果,我想这就是整个页面?因为我定义了两个数据集,页面上出现了两个字段,但查询中只有一行,上面的一行会回显。
我需要知道WP_Query
对象位于$content中,但var_dump($content)
也不包含我定义的字段。我需要获取内容排版中的图像,但我只能获取访问集的名称$content->post_title
.
有没有办法深入了解get_posts()
从数据库中获取,以及如何访问所需的属性?
最合适的回答,由SO网友:Howdy_McGee 整理而成
这个get_posts()
函数在函数内创建WP\\u Query的实例,并简单地返回结果数组。此WP\\U查询实例不会覆盖global $wp_query
并且在您需要它的时候超出了范围。简而言之,我看不出有什么方法可以通过get_posts()
.
另一种方法是简单地创建自己的WP\\u查询实例并传递get_posts()
它的参数:
$query = new WP_Query( array(
\'post_type\' => \'inst\',
\'post_status\' => \'publish\'
\'posts_per_page\' => -1,
\'order\' => \'ASC\', // sort_order
\'orderby\' => \'post_title\', // sort_column
) );
这将为您提供整个WP\\U查询对象,您可以在其中输出SQL:
$query_sql = $query->request;
最后,如果您已经在创建WP\\u查询,则不需要
get_posts()
在那一点上打电话。
if( $query->have_posts() ) {
while( $query->have_posts() ) {
$query->the_post();
the_content();
}
// Reset the global $wp_query to what it was originally.
wp_reset_postdata();
}