Questions tagged «wp-query»

“ wp-query”模棱两可是指两件事之一。1)WP_Query是WordPress的本机类,它允许用户使用多种条件来查询帖子数据库。2)$ wp_query是全局变量,用于保存WordPress根据给定请求准备的主查询对象。

5
PHP最佳实践
在做诸如single.php之类的模板并且将php包裹在html中时,最好这样做: 启动+停止PHP?例如 <h1 class="post-tilte"><?php the_title(); ?></h1> <p class="post-content"><?php the_content();?></p> 要么 回声HTML和Escape PHP?例如 - <?php echo '<h1 class="post-title">' . get_the_title() . '</h1> <p class="post-content"' . get_the_content() . '</p> 我没有一个自由释放的选择,发现自己都做,只是好奇地听到一些想法
11 php  wp-query  escaping 

2
将每种帖子类型的查询与不同参数组合在一起
我正在网站上建立一个部分,将两种不同的帖子类型合并为一个循环,然后随机显示它们。问题是,我很难找到一种方法来限制每种类型的帖子数量。 这是我尝试过的: 一个具有多种帖子类型的查询可以通过一个数组来实现: $args = array( 'post_type' => array( 'photos', 'quotes' ), ... ...但不能限于每种类型的特定帖子数。 在运行WP_Query之前合并两个查询参数数组: $photos = array( 'post_type' => 'photos', 'posts_per_page' => 15, 'orderby' => 'rand' ); $quotes = array( 'post_type' => 'quotes', 'posts_per_page' => 5, 'orderby' => 'rand' ); $args = $photos + $quotes; // Also tried array_merge( …

3
为什么“ / page / 2 /”不起作用?
最终使分页可以使用下面的代码,但是现在分页链接到/ videos / page / 2 /,该链接不存在。如何使第2页正常工作? <?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('post_type=videos&showposts=1'.'&paged='.$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); //display stuff endwhile; php wp_pagenavi(); ?>

3
具有布尔值true / false的元查询
我试图显示所有租赁物业,首先显示所有尚未租赁的物业,然后显示当前已租赁的所有物业。对于租用的价格(_price_rented),有一个带有自定义帖子元的自定义帖子类型“租金”,该复选框是一个复选框(如果已租借,则返回true或false ... true)。我需要更改查询以显示所有属性,并首先显示可用(非出租)属性,然后再显示租用属性。 这是我的查询: $ts_properties = new WP_Query( array( 'post_type' => 'rent', 'paged' => $paged, 'posts_per_page' => -1, 'meta_key' => '_price_rented', 'orderby' => 'meta_value', 'order' => 'DESC', 'meta_query' => array( array( 'key' => '_price_rented', 'value' => false, 'type' => 'BOOLEAN', ), ) ) ); 由于某种原因,此查询显示已租用的所有属性。当我在meta_query中将值从“ false”切换为“ true”时,它没有显示任何属性。 因此,我当时以为,返回值是false(对于租用的属性)或NULL(对于非租用的属性),但是不确定如何查询NULL结果(不是false),因此我添加了一个'对meta_query进行“比较”参数,然后将值设置为“!=”,但这也不起作用。 编辑:var_dump对于可用的非出租公寓返回以下内容:对于不可用的出租公寓返回以下内容string(0) "":string(1) …

2
在WP_Query meta_query键中使用REGEXP
我知道我可以像这样在WP_Query中使用REGEXP: $query = new WP_Query(array( 'posts_per_page' => -1, 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'custom_fields', 'value' => 'foo[(][0-9][)]', // with regex stuff 'compare' => 'REGEXP', ), ), )); 但是我也需要键中的正则表达式。像这样: $query = new WP_Query(array( 'posts_per_page' => -1, 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'custom_fields[(][0-9][)]', // …

1
为什么在某些404上循环不为空?
我遇到了一个奇怪的问题。 假设您访问一个随机网址,深度为三个或三个以上级别: http://example.com/a/b/c http://example.com/a/b/c/d ... 然后is_404()是true。到现在为止还挺好。但是由于某些原因,查询了最后的帖子。 $wp_query->request 是 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND ( wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private' ) ORDER BY wp_posts.post_date DESC LIMIT 0, 5 那当然会带来have_posts()回报true等等。有人可以解释吗? 到目前为止,我发现了什么: 之所以只能深入到三个或三个以上级别,是因为WP在此之前查找帖子和附件,从而以某种方式导致其他行为。 似乎即使WP在某一时刻将请求识别为404,但它仍会获取最新的帖子。在@kaiser和@GM的帮助下,我已将此问题跟踪到/wp-includes/class-wp.php:608的某个位置。

4
如何将两个查询合并在一起
我正在尝试通过首先显示带有图像的帖子,然后显示没有图像的帖子来对类别中的帖子进行排序。我已经通过运行两个查询来做到这一点,现在我想将两个查询合并在一起。 我有以下内容: <?php $loop = new WP_Query( array('meta_key' => '_thumbnail_id', 'cat' => 1 ) ); $loop2 = new WP_Query( array('meta_key' => '', 'cat' => 1 ) ); $mergedloops = array_merge($loop, $loop2); while($mergedloops->have_posts()): $mergedloops->the_post(); ?> 但是,当我尝试查看页面时,出现以下错误: Fatal error: Call to a member function have_posts() on a non-object in... 然后,我尝试将array_merge强制转换为对象,但出现以下错误: Fatal error: …
10 wp-query  merging 

2
WP_Query中多个tax_query的多重关系
我想使用WP_Query()该类来过滤一些帖子。我现在面临的问题是处理分类法查询。通常,WP_Query()唯一处理一个关系tax_query()(“与”或“或”)的关系,但是我需要在上混合使用这些关系tax_query(),如何实现呢? 例如 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'taxonomy1', 'field' => 'slug', 'terms' => array( $term) ), array( 'taxonomy' => 'taxonomy3', 'field' => 'slug', 'terms' => 'terms' => array( $term3), 'operator' => 'IN', ) // below i want to use OR relationship 'relation' => 'OR', array( 'taxonomy' …

2
WP_Query泄漏荒谬的内存量
每当我在下面的函数中调用WP_Query()时,Wordpress就会泄漏8兆的内存。而且,由于我多次调用此函数,所以事情很快就变得很毛茸茸了……:(我尝试取消生成的$ queryObject以及定期调用wp​​_cache_flush(),但似乎都没有任何效果。 function get_post_ids_in_taxonomies($taxonomies, &$terms=array()) { $post_ids = array(); $query = gen_query_get_posts_in_taxonomies($taxonomies, $terms); // var_dump($query); //Perform the query $queryObject = new WP_Query($query); //*****THE 8 MEGABYTES IS LEAKED HERE***** //For all posts found... if($queryObject->have_posts()) { while($queryObject->have_posts()) { $queryObject->the_post(); //Get the $post_id by capturing the output of the_ID() ob_start(); the_ID(); $post_id = …

1
带有分页的多个WP_Query循环
对此还有其他一些问题(WP_Query分页对于很多人来说是一个很大的问题),因此我试图缩小范围,以使其真正起作用。 我可以使用以下代码分页创建单个自定义循环: // http://weblogtoolscollection.com/archives/2008/04/19/paging-and-custom-wordpress-loops/ $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $args = array( 'showposts' => 2, 'paged' => $paged ); $wp_query->query($args); while ($wp_query->have_posts()) : $wp_query->the_post(); // The Post the_title(); echo '<br>'; the_category(' '); the_excerpt(); echo '<hr>'; endwhile; // http://codex.wordpress.org/Function_Reference/paginate_links#Examples $big = 999999999; $pag_args = array( 'base' => …

4
在一页上使用多个查询时,获取当前循环的发布计数
我正在尝试获取循环内当前帖子的数量。我在主题的一页上使用了多个循环。到目前为止,我有: $my_post_count = $wp_query->post_count; 但是,当我打印$ my_post_count时,它将返回我WP网站上所有帖子的编号。可能与在一页上使用多个查询有关吗?我尝试在每个循环后使用wp_reset_query,以确保我不会那样扔东西。我究竟做错了什么?
10 wp-query  loop 

3
按一个自定义字段过滤,按另一个排序?
我有一个自定义帖子类型“列表”,我想获取所有具有自定义字段的列表gateway_value != 'Yes',并按另一个自定义字段排序结果location_level1_value。我可以使查询分开工作,但是不能将它们合并: 查询1(按位置排序): $wp_query = new WP_Query( array ( 'post_type' => 'listing', 'post_status' => 'publish', 'posts_per_page' => '9', 'meta_key' => 'location_level1_value', 'orderby' => 'location_level1_value', 'order' => 'ASC', 'paged' => $paged ) ); 查询2(自定义字段值!=是): $wp_query = new WP_Query( array ( 'post_type' => 'listing', 'posts_per_page' => '9', 'post_status' => 'publish', 'meta_key' …


1
使用WP_Query获取自定义帖子类型的帖子
我正在尝试使自定义帖子返回查询并显示,但它返回并显示默认/标准帖子。我如何从我的CPT获得帖子? $query = new WP_Query( array( 'job_posting_type' => 'Job Post' ) ); if ( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <div> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div> <?php endwhile; wp_reset_postdata(); ?> <!-- show pagination here --> <?php else : ?> <!-- show 404 …

2
WordPress在列表视图中检索所有自定义帖子类型的元数据
我在WordPress即将死去的WordPress中遇到问题。我增加了内存,但是PHP进程跳到100%的CPU使用率,然后死了,Apache抛出500错误。 我试图让Apache记录某些内容,或者使PHP / MySQL记录错误,但是除了一般的500错误以外,什么都没有记录。 500问题在列表页面上,例如: /wp-admin/edit.php?post_type=artist 当前,如果我添加类似以下的日期排序,则WordPress中有超过1200个艺术家条目: /wp-admin/edit.php?post_type=artist&orderby=date 然后,列表加载良好,速度更快!我已经坐下来观看MySQL查询日志,看来WordPress正在为每个帖子(共1200个)加载元数据,以便生成10个左右的列表。对于其中一个查询,将返回92000行。我使用的是“高级自定义字段”和带有其自己框架的模板,因此每个帖子都附加了相当数量的元数据。我认为这是PHP无法处理的太多数据,在这里达到了顶峰。明年,这1200个职位很容易翻倍。 如何强制初始页面加载以附加日期排序或解决所有加载的元数据问题?

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.