是否使用WP_QUERY发布模板查询?

时间:2019-02-01 作者:roscoe ferguson

我见过这种基于模板类型查询页面的解决方案:Page template query with WP_Query

我很难将其用于使用“单一帖子模板:”而不是“模板名称:”定义的帖子。

这是我的代码:

 // query
$the_query = new WP_Query( array(
  \'post_type\' => \'post\',
  \'posts_per_page\'  => -1,
  \'meta_query\' => array(
     array(
     \'key\' => \'_wp_page_template\', 
     \'value\' => \'single-current.php\'
     )
   )
));
我是否应该使用不同的“键”?

类似于“\\u wp\\u post\\u template”

谢谢

3 个回复
SO网友:klewis

如果您仍然卡住,一种可能的替代方法是通过自定义帖子类型获取所有帖子ID。您可以尝试以下方式:

$the_query = new WP_Query( array(
  \'post_type\' => \'my-custom-post\',
  \'posts_per_page\'  => -1,
   )
));
while ( $the_query->have_posts() ) : $the_query->the_post();
    the_ID();
endwhile;
这将需要您创建一个自定义帖子类型,并将帖子与之关联。

有很多方法可以将页面模板与帖子关联,但至于WP\\u Query从那时起如何与该流程协同工作,我仍然需要学习:)

SO网友:Marc

我最近遇到了一种情况,我需要以同样的方式查询帖子。后期使用相同_wp_page_template meta将模板存储为页面。

以下是一些应该有效的论点:

$args = array(
    \'post_type\' => \'post\',
    \'meta_key\' => \'_wp_page_template\',
    \'meta_value\' => \'templatename.php\'
);
如果模板位于主题的文件夹中,则还需要包括路径:

$args = array(
    \'post_type\' => \'post\',
    \'meta_key\' => \'_wp_page_template\',
    \'meta_value\' => \'templates/templatename.php\'
);
您还可以查询使用默认模板的帖子:

$args = array(
    \'post_type\' => \'post\',
    \'meta_key\' => \'_wp_page_template\',
    \'meta_value\' => \'default\'
);

SO网友:roscoe ferguson

感谢大家的回复。事实证明,该网站实际上使用了“单帖子模板”插件,模板的定义如下:

Single Post Template: Fullwidth
Description: Like single post but without sidebar.
我想这已经有一段时间了。我将模板更新为:

Template Name: Fullwidth
Template Post Type: post
Description: Like single post but without sidebar.
我去掉了额外的插件,重新分配了帖子,现在我原来的查询开始工作了。

相关推荐

在循环外部调用is_Single()

所需的文件不会加载到单个帖子上,也不会加载到任何地方!如果我删除is_single() 功能我可以让它工作。我的问题是如何检查当前页面是否为帖子?我看了其他问题,看起来我调用的是循环外的函数,但无论我在这些答案中尝试什么都不起作用!!你会怎么处理?谢谢class Something { function my_func() { if ( is_single() ) { require_once( \'/lib/control