使用WP_Query进行页面模板查询

时间:2011-09-30 作者:Alexandre Kirszenberg

我只想查询具有特定页面模板的页面WP_Query 或者是一个返回post对象的函数,但我在官方的codex上找不到任何相关信息。

5 个回复
最合适的回答,由SO网友:Rutwick Gangurde 整理而成

更新:这是一个十年前的答案,是针对WordPress的一个非常旧的版本。我可以看到评论告诉我,这可能不适用于较新的WP版本,如果我的答案不适用于您的WP版本,请参考下面的其他答案。对于WP 2。*,这将起作用。

试试这个。。。假设模板名称为“my\\u template”。php\',

$query = new WP_Query(
    array(
        \'post_type\' => \'page\',
        \'meta_key\' => \'_wp_page_template\',
        \'meta_value\' => \'my_template.php\'
    )
);
//Down goes the loop...
您还可以使用get_posts, 或修改query posts 完成工作。这两个函数使用的参数与WP_Query.

SO网友:BenJam

错误:从wordpress 3开始,您需要类似于:

$args = array(
    \'post_type\'  => \'page\', 
    \'meta_query\' => array( 
        array(
            \'key\'   => \'_wp_page_template\', 
            \'value\' => \'my_template.php\'
        )
    )
);

SO网友:anmari

页面模板存储为元值,键为“\\u wp\\u page\\u template”。

因此,您只需在元查询参数中使用该键。例如

看见http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value

http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

SO网友:Guille Holmann

如果模板位于其他文件夹中:

$args = array(
    \'post_type\' => \'page\', //it is a Page right?
    \'post_status\' => \'publish\',   
    \'meta_query\' => array(
        array(
            \'key\' => \'_wp_page_template\',
            \'value\' => \'page-templates/template-name.php\', // folder + template name as stored in the dB
        )
    )
);

SO网友:Ivan Gomes

如果任何人的尝试错误地导致了零篇帖子,那么模板名称可能是错误的。我尝试了php文件名和模板名,但都不起作用。然后,我决定检查模板选择框,我们在页面编辑器中选择模板。我发现了这个:

<option value="templates-map/component-tutorial-1.php" 
 selected="selected">Tutorial -1</option>
我用过templates-map/component-tutorial-1.php 它成功了。

结束

相关推荐

wordpress wp_list_pages help

在我的wordpress环境中,我有很多页面,还有一个自定义的帖子类型,叫做CaseStury。我已经设置了一个页面客户端。php上有一些自己的内容,然后我使用query_posts() 函数可使用post类型案例研究拉入所有post。查看单个案例研究时,我想显示nav,该nav需要包含指向页面、客户和案例研究的链接,在案例研究下面,我想添加所有自定义帖子类型“案例研究”的帖子,目前为止,我有以下内容:,<?php wp_list_pages(array(\'include\' => \'15