Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WordPress中,我是否需要多个WP_查询对象来在首页显示多个类别和自定义类型的帖子?_Php_Wordpress - Fatal编程技术网

Php 在WordPress中,我是否需要多个WP_查询对象来在首页显示多个类别和自定义类型的帖子?

Php 在WordPress中,我是否需要多个WP_查询对象来在首页显示多个类别和自定义类型的帖子?,php,wordpress,Php,Wordpress,首先,英语不是我的母语,我对编程、PHP和WordPress非常陌生,所以请耐心地回答:) 我正在为一个多功能博客创建一个自定义主题,其中显示视频、文章、电影评论、图片库、活动和一个购物区,游客可以在这里购买和下载一些电子书 在首页中,我想展示一种最后条目的概述,包括: 3个不同博客文章类别(文章、电影评论、视频)的最后3个条目 接下来的3个传入事件 过去3件事 最后3个已出版画廊 最后3本可下载电子书 我的问题是:我需要调用7个不同的WP_查询对象来让它工作,每个类别/post_类型一个,

首先,英语不是我的母语,我对编程、PHP和WordPress非常陌生,所以请耐心地回答:)

我正在为一个多功能博客创建一个自定义主题,其中显示视频、文章、电影评论、图片库、活动和一个购物区,游客可以在这里购买和下载一些电子书

在首页中,我想展示一种最后条目的概述,包括:

  • 3个不同博客文章类别(文章、电影评论、视频)的最后3个条目
  • 接下来的3个传入事件
  • 过去3件事
  • 最后3个已出版画廊
  • 最后3本可下载电子书
我的问题是:我需要调用7个不同的WP_查询对象来让它工作,每个类别/post_类型一个,还是有更好的方法来完成它

可能使用,或一些条件标记,如或?我尝试了这些方法和其他一些方法,但我缺乏编程技巧,因此一事无成。欢迎提出任何建议

(添加了我实际使用的代码的相关部分)


//这里包括了POST的循环
//这里包含了用于评审的循环
//这里包括视频循环
//这里包括了回廊
//这里包含了下载循环
//这里包含了传入事件的循环
//这里包括过去事件的循环

是的,如果它们在不同的帖子类型中,您必须以不同的方式查询所有内容

在博客类别案例中,您可以执行以下操作:

$pp = 3;
$cats = ("post","rece","gall",...);

foreach($cats as $cat){
    $the_query = new WP_Query( array( 'posts_per_page' => $pp,'category_name' => $cat ) );
    //Loop in here
}
这样可以节省行数和时间,此外,如果post类型相同,还可以对post类型查询应用相同的逻辑


让我知道这是否适合你

如果您的计划是在主页的不同部分显示所有这些条目(根据您的代码,情况似乎是这样),那么您所做的很好。谢谢您的回复。是的,这就是计划。我关心的是这个方法,因为我检查了一些其他主题,它们通常在单个页面中最多显示一个wp_查询实例。我还安装了查询监视器,它在我的首页中检测到94个总的DB查询,而我在一个WP页面中看到大约100个查询有点太多了。再说一次,我对编程和WP真的很陌生,所以我想在这里征求一下意见。只要你在你的网站上使用某种缓存机制来避免频繁运行潜在的繁重的数据库查询,你就不会有任何问题(例如,WP Super Cache可以从网站的动态页面生成静态HTML文件,或者更高级的东西,如Redis/Memcached,可以将网站的大部分数据缓存在持久对象缓存上,等等),但是看到您担心性能也很好,这是优秀的开发人员所做的:)顺便提一下,这是个好问题!谢谢你的回复。看起来更整洁,即使wp_查询的总数保持不变,对吗?我会试试看,然后公布结果。我关心的是这个方法,因为我检查了一些其他主题,它们通常在单个页面中最多显示一个wp_查询实例。我还安装了查询监视器,它在我的首页中检测到94个总的DB查询,我读到一个WP页面中大约有100个查询太多了。再说一次,我对编程和WP真的很陌生,所以我想在这里征求意见。根据您的经验,单个wp页面中的7个wp_查询不是太多吗?您给出的这个短代码示例对我很有帮助。我最初确实使用了“获取帖子”的方法,但我想我可能会使用WP_查询方法。使用WP\u Query与get\u posts相比有什么优点/缺点,反之亦然?ThanksHi@Krys get_posts()函数只是调用一个WP_查询对象,因此该函数是WP_查询新对象之后的一个步骤:),尽管我通常使用get_posts函数