Questions tagged «query-posts»

使用查询参数设置“循环”。这将覆盖当前的WordPress循环,并且不应重复使用。不得在WordPress循环中使用此功能。

3
为什么没有将query_posts()标记为已弃用?
从query_posts()技术上讲,有两个功能。一个query_posts()实际上是WP_Query::query_posts(),另一个在全球空间。 从理智上问: 如果query_posts()说这个“邪恶”是全球性的,那为什么不弃用呢? 或为什么未标记为_doing_it_wong。

3
我如何从查询帖子中获取计数
我如何获得查询帖子中的行计数,例如mysql count(*)。 $obj_name = new WP_Query($args); while ($obj_name->have_posts()) : $obj_name->the_post(); // here i want to predict looping counts endwhile; 我怎样才能做到这一点。

6
WP使用WP查询获取父级的所有子页面
这是我的代码 $my_wp_query = new WP_Query(); $all_wp_pages = $my_wp_query->query(array('post_type' => 'page','post_parent'=>$parid,'orderby'=>'title','order'=>'ASC' )); 它仅显示第一级子页面。我需要所有子页面,子页面的子页面...以及全部。我搜索了一个解决方案,并且可以使用get_pages和wp_list_pages获取所有子页面。 但是我确实需要按自定义发布元值对订单进行排序。所以我必须使用自定义查询。 请帮忙。谢谢

5
如何按类别和标签查询帖子?
我试图显示与类别X和标签Y相关的帖子列表。我尝试了以下代码: $args = array( 'posts_per_page' => 4, 'tag_id' => $tag_id, 'cat' => $cat_id, ); query_posts($args); 但它不能正常工作,并返回该类中的所有帖子。 很想听听您可能有的见解
11 query-posts  tags 

3
如何获取日期和今天之间发布的帖子?
是否可以通过这种方式在日期和今天之间发布帖子query_posts()? 例如:所有文章发表以来2012-04-01 谢谢 编辑: 如何在此查询中添加过滤日期? query_posts( array( array('post'), 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array('post-format-image') ) ), 'cat' => '-173', 'post_status' => 'publish' ) );
10 posts  loop  query-posts  date 

1
使用meta_query,如何按自定义字段过滤并按另一字段排序?
使用以下代码(在functions.php中),我的CPT事件帖子按_end_date而不是_start_date排序。从WP 3.1.3开始,对此有什么适当的解决方案?当然,我想避免使用已弃用的meta_key。 add_filter( 'pre_get_posts', 'my_get_posts' ); function my_get_posts( $query ) { if ( is_home() ) { $query->set( 'post_type', 'event' ); $query->set( 'meta_key', '_start_date' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); $query->set( 'meta_query', array( array( 'key' => '_end_date', 'value' => time(), 'compare' => '>=', 'type' => 'numeric' ) ) …

2
如何在WordPress 3.1中按帖子格式查询
我正在尝试查询帖子格式为“ quote”的所有帖子。我已经将发布格式添加到我的functions.php中 add_theme_support( 'post-formats', array( 'image', 'video', 'gallery', 'quote' ) ); 我已选择“引号”作为管理员中帖子的格式。Taxonomy_Parameters下的最后一个示例显示了如何显示具有“ quote”格式的帖子,但是当我在主题中运行该帖子时,不会返回任何帖子。这是代码: $args = array( 'tax_query' => array( array( 'taxonomy' => 'post-format', 'field' => 'slug', 'terms' => 'post-format-quote' ) ) ); query_posts( $args ); 当我只查询所有帖子和位置 echo get_post_format(); 在循环中,它在前端返回单词“ quote”。另外,当我使用var_dump()查询时,我在数组中看不到任何有关帖子格式的内容。 有谁知道是否可以通过帖子格式查询?如果可以,怎么办? 编辑-请参阅Bainternet的答案下的5条评论:这是在尝试返回格式类型引号的全新安装的二十个主题的index.php上找到的代码。我返回“ no”而不是“ quote”。你能看到我应该改变的任何东西吗? get_header(); ?> <div id="container"> <div id="content" …

3
按元值或日期排序?
得到了一个自定义字段,startDate但仅在少数事件中存在。我想知道是否没有设置我可以post_date用来生成帖子列表的帖子? // if meta_key _postmeta.startDate isn't set get the rest by posts.post_date query_posts( array( array( 'posts_per_page' => 10, 'meta_key' => 'startDate', 'meta_value' => date('Y-m-d'), 'meta_compare' => '<', 'orderby' => 'meta_value', 'order' => 'ASC' ), array( 'meta_key' => 'post_date', 'meta_value' => date('Y-m-d'), 'meta_compare' => '<' ) ) );

3
使用WP_Query查询多个类别且每个类别的帖子数量有限?
我每15个帖子有3个类别,我想对数据库进行一次查询,每个类别仅带5个第一篇帖子,我该怎么办? $q = new WP_Query(array( 'post__in' => array(2,4,8), 'posts_per_page' => **FIRST_5_OF_EACH_CAT** )); 如果不可能的话,哪种方法更有效,获取父类别的所有帖子并循环浏览它们,或者创建3个不同的查询?

3
在管理面板中隐藏其他用户的帖子
我打算经营一个多作者网站,我不希望其他作者的帖子显示在/wp-admin/edit.php页面中。 我设法通过该线程中的代码解决了这个问题。代码是这样的: function posts_for_current_author($query) { global $pagenow; if( 'edit.php' != $pagenow || !$query->is_admin ) return $query; if( !current_user_can( 'manage_options' ) ) { global $user_ID; $query->set('author', $user_ID ); } return $query; } add_filter('pre_get_posts', 'posts_for_current_author'); 该代码非常有效,它隐藏了其他作者的帖子,以在此处显示。但是我确实发现了另一个问题-页面顶部的菜单不会更改作者的相关帖子数量,它显示了我网站中所有帖子的数量。 我的意思是这样的菜单: Mine () | All () | Published () | Draft () | Trash () 如何更改中的数字()以反映仅与作者相关的数字?

4
有没有一种方法可以从post变量中排除内容以节省RAM使用量?
因此,我遇到了看起来像WP RAM使用问题的问题,并且正在寻找解决方案。 我在网站上真正遇到这个问题的唯一地方是我尝试填充的“网站地图”页面,但是可以普遍应用此问题的解决方案,并节省整个网站的RAM使用率。 从本质上讲,这个网站地图页面我是所有人的名单posts,并pages在我的网站。我需要在此页面上访问的$ post变量的唯一元素是标题和永久链接。不幸的是,我正在使用的查询返回所有帖子,以及每个$ post变量中的所有信息。 以下是我在此站点地图页面上使用的一个查询示例,该查询custom-post-type具有一个自定义分类法“补充”和术语“所有补充” 的单个“产品”。我的站点地图页面具有多个此类查询,但出于解释目的,我仅包含此单个查询的代码。 $varArray= array( 'post_type' => 'products', 'post_status' => 'publish', 'supplements' => 'all-supplements', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC' ); $myProducts= new WP_Query($varArray); $ post变量中保存的绝大多数信息(对于我的网站,我想这个趋势通常用于通用)在“内容”中找到。我的“站点地图”页面的典型RAM使用量约为140MB (由Debug Bar报告),而我网站上任何其他典型页面的使用量为50-60MB。很大的区别。昨天,“站点地图”页面停止工作(WSOD),要解决此问题,我不得不增加WP可以使用的最大RAM量。因此,由于只有一页,因此我增加了总体必要的系统资源。 因此,我提出了问题。 有没有在WordPress的路径/选项的地方,我的思念,将获取posts/ pages像一个正常的查询,但不获取检索到的帖子的内容? 或者,是否有一种更简单的方法让我仅获取给定查询(标题/ Permaklink / Slug / etc ...)中的特定元素,而不是获取整个$ post变量shebang? 在我看来,对于许多WP应用,唯一的地方,通常会需要后/页的“内容”是对page或post页面(当然这里也有例外),并有机会获得职位的全部内容通过其他页面上的查询检索到的/ pages是简单的矫kill过正。如果有一种方法可以避免加载列表列表页面的全部内容,则可以节省大量的RAM使用量。 任何帮助,将不胜感激。

1
在单个页面上显示具有多种帖子类型和相同关系的查询
我正在创建一个客户门户,我的客户可以维护他们的项目并在Wordpress中留下反馈。我有两种自定义的发布类型,分别称为“客户”和“项目”,它们各自在后端相互提取信息。当我创建客户端时,如果我可以将客户端分配给项目,它会自动在项目发布类型的下拉菜单中生成其postID。 我要完成的工作是通过在前端的单个页面上显示与所选客户端关联的所有项目。单个页面将是由客户帖子类型生成的客户门户。 我似乎无法显示相关的帖子。这是我的代码single.php,将在客户门户上显示项目。 <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $loop = new WP_Query( array( 'post_type' => array( 'projects'), 'posts_per_page' => -1, 'paged' => $paged, 'meta_query' => array( array( 'key' => 'a_client', // name of custom field 'value' => '"' . get_the_ID() . '"', 'compare' => 'LIKE' ) ) …

2
按帖子元数据过滤帖子
我想以仅显示get_post_meta($post->ID, "project_cat", true)(返回帖子ID)等于我指定值的帖子的方式过滤帖子。 有什么办法吗? 我对使其与WP-Paginate插件兼容的方式特别感兴趣。

1
如何使用meta_query来对meta_key进行排序并按日期进行二级排序?
在过去的几天里,我一直在对问题进行故障排除,并且一直在圈里。真的可以用新鲜的眼睛来帮助我回答这个问题... 因此,我正在一个wordpress网站上工作,该网站的帖子具有一些与我需要运行的查询相关的自定义字段:“过期”和“我的排序顺序”。当我运行query_posts时,我希望结果是“ post-expired”不是“ yes”的帖子(此部分在我的代码中有效)。我还希望将结果按“我的排序顺序”的DESC数值排序(也可以使用),如果“我的排序顺序”有关联,我希望按日期对最近的帖子进行二次排序第一。 按日期的第二排序是我遇到麻烦的地方。 这是我现在拥有的代码: <?php $args = array( 'paged' => $paged, 'meta_query'=> array( array( 'key'=>'post-expired', 'value'=> 'yes', 'compare' => '!=' ) ), 'meta_key'=>'my-sort-order', 'orderby'=>'meta_value_num', 'order'=>'DESC' ); $args = array_merge( $args , $wp_query->query ); query_posts( $args ); ?> 使用上面的代码,我正确地获取了未过期的帖子,并且按照我的排序顺序降序对它们进行了排序(即100出现在99之前,依此类推)。但是,如果两个帖子都具有相同的排序顺序值,那么就会发生某种二级排序,我似乎无法控制(并且无法弄清楚它实际上是在排序的)。 解决此问题的第一个想法是,如果我想为该帖子设置特定的排序顺序,则仅将值添加到“我的排序顺序”。我以为如果其余帖子的此字段的值都留为空白,则它们将按照DESC日期的默认排序方式简单返回(按设置排序顺序的帖子之后)。但是,实际上发生的是,没有设置排序顺序值的所有帖子都根本没有返回... 接下来,我尝试在orderby字段中添加多个值,如下所示: ('orderby'=>'meta_value_num date') 这完全炸毁了我想要的两个排序顺序,并以意外的方式退回了帖子。我的印象是允许使用多个orderby值,但是由于某些原因,它在这里不起作用。 在这一点上,我不确定如何使这些潜在的解决方案中的任何一个起作用。有谁知道我该怎么做?1)首先按“我的排序顺序”字段对帖子进行排序,然后使用默认的日期排序返回该字段中没有值的其余帖子;还是2)弄清楚如何通过排序来控制次要顺序,以便任何与“我的排序顺序”相关的帖子都将按日期进行排序(最新的优先)?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.