需要帮助理解此WP查询

时间:2017-03-16 作者:Ananda Lye

因此,我有一个主题,其中有一个关于部分,显示在定制器中,但在管理页面上没有一个特定的帖子类型,可以将帖子添加到此部分。

如何使用下面所述的模板代码将帖子添加到“关于”部分。

if(isset($xt_corporate_lite_opt[\'xt_about_page\']) && 
$xt_corporate_lite_opt[\'xt_about_page\'] != \'\') {
    $xt_query = new WP_Query(array(
        \'page_id\' => $xt_corporate_lite_opt[\'xt_about_page\']
    ));
    if ($xt_query->have_posts()) {
        while ($xt_query->have_posts()) {
            $xt_query->the_post();
            the_content();
        }
    }
    wp_reset_postdata();
}

2 个回复
SO网友:1naveengiri

您可以尝试此代码仅显示帖子。

if(isset($xt_corporate_lite_opt[\'xt_about_page\']) && $xt_corporate_lite_opt[\'xt_about_page\'] != \'\') {
    $args = array( \'post_type\' => \'post\');
    $xt_query = new WP_Query($args);
    if ($xt_query->have_posts()) {
        while ($xt_query->have_posts()) {
            $xt_query->the_post();
            the_content();
        }
    }
    wp_reset_postdata();
}
如果您对WP\\U查询有任何疑问。然后您可以详细检查此链接。

https://codex.wordpress.org/Class_Reference/WP_Query

SO网友:Ian

假设您的代码段在页面的一部分上运行,而不是用于覆盖整个页面内容,那么您将需要更改WP\\u查询参数。

要在该页面上显示帖子列表,请执行以下操作:post_type => \'post\'要显示该页面上的所有帖子,请执行以下操作:posts_per_page => -1要将该页面上的帖子数量限制为5篇,请执行以下操作:posts_per_page => 5

所以看起来像这样:

$args = array(
    \'post_type\' => \'post\', // only show posts in this query
    \'posts_per_page\' => 5, // only show 5 posts. Leave this blank to have the query results set by your website settings instead
);
此外,请确保您的查询以wp_reset_query 将$wp\\U查询变量和所有数据还原回原始查询。

因此,您的全部功能如下所示:

if(isset($xt_corporate_lite_opt[\'xt_about_page\']) && $xt_corporate_lite_opt[\'xt_about_page\'] != \'\') {
    $args = array( 
        \'post_type\' => \'post\',
        // Any extra arguments you want here that WP_Query will take
    );
    $xt_query = new WP_Query($args);
    if ($xt_query->have_posts()) {
        while ($xt_query->have_posts()) {
            $xt_query->the_post();
            the_content();
        }
        wp_reset_query(); // put this right after the while loop or after you\'re sure you are done using those variables (like pagination)
    }
}
wp_reset_postdata() 类似于wp_reset_query() 但只会恢复$post变量,而不会恢复完整查询。在这种情况下,您可能会使用其中一种;)

Helpful Documentation:

    wp\\U reset\\U查询:https://codex.wordpress.org/Function_Reference/wp_reset_queryhttps://codex.wordpress.org/Function_Reference/wp_reset_postdatahttps://codex.wordpress.org/Class_Reference/WP_Query (您可能已经了解了一些,但了解WP\\U查询的所有内容非常方便。这是一个非常强大的工具!)

相关推荐

如何在class-wp-query.php中跟踪核心函数is_page()&is_Single上的通知警告

在我的生产站点上,我的这些产品已经超支了:PHP Notice: Trying to get property of non-object in /public_html/wp-includes/class-wp-query.php on line 3728 PHP Notice: Trying to get property of non-object in /public_html/wp-includes/class-wp-query.php on line 3730 PHP No