Questions tagged «wp-query»

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

3
我应该使用Pre Get Posts还是WP_Query
我有以下查询,我通过以下方式在我的taxonomy.php模板中调用 query_brands_geo('dealers', 'publish', '1', $taxtype, $geo, $brands); 此功能运行完美。但是,在阅读了用于查询帖子的Codex之后,它提到了pre_get_posts作为更改默认查询的首选方法。pre_get_posts比下面的wp_query函数更有效吗? 如果是这样,我将如何构造pre_get_posts并在下面传递变量和查询? function my_custom_query($posttype, $poststatus, $paidvalue, $taxtype, $geo, $brands) { global $wp_query; $wp_query = new WP_Query(); $args = array( 'post_type' => $posttype, 'post_status' => array($poststatus), 'orderby' => 'rand', 'posts_per_page' => 30, 'meta_query' => array( array( 'key' => 'wpcf-paid', 'value' => array($paidvalue), 'compare' => …

5
如何在WP会话中存储和接收变量?
我有一个带有一些复选框和输入框选择框的表单,它通过ajax调用显示用户想要的内容。问题是,当用户单击该项目并显示详细信息页面,然后决定返回上一页时,他需要单击并再次选择其先前的选择。 我想让WP在单击详细信息页面的按钮时将所有选项存储在会话中,并在会话中保存实际信息,然后当他再次访问该页面时,这些值将在会话中记录,并设置是否为找到了。 可以在WP中完成吗? 如果是,怎么办? 让我们简化一下,说我们的表单中有这样的内容: <input class="car_color" type="checkbox" name="car_color" value="1" /> <input class="car_color" type="checkbox" name="car_color" value="2" /> <input class="car_color" type="checkbox" name="car_color" value="8" /> <input class="car_color" type="checkbox" name="car_color" value="4" /> <input class="car_color" type="checkbox" name="car_color" value="6" /> 我不在表单中使用“提交”按钮,而是通过AJAX在输入更改时进行处理。 在我通过ajax获得的结果中,我有一个指向详细信息页面的链接: <a class="detail-info-link" href="<?php echo $url ?>"> 知道如何在浏览器中重新访问/重新加载/后退按钮时将值存储在Session中并调用它们吗? 我需要能够读取会话存储的内容并通过?Javascript使用它?并通过已经运行良好的ajax触发我的搜索功能。 我只需要存储(可能在按明细按钮的href中进入$ link并读取和发送会话变量(如果存在)之前)。
28 wp-query  session 

4
从wp_query中排除帖子ID
如何从WP_Query查询中排除一个特定的帖子?(例如,显示除ID 278以外的所有帖子) 我已经尝试过post__not_in参数,但它只是删除了所有帖子。 任何帮助都会很棒。 这是我当前的查询 <?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(array( 'post_type' => 'case-study', 'paged' => $paged, )); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 谢谢
28 wp-query  exclude 

3
从WP_Query获取帖子ID?
有没有一种方法可以检索从以下查询的帖子ID数组: $latest = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => 3 )); if ( $latest -> have_posts() ) : while ( $latest -> have_posts() ) : $latest -> the_post(); get_template_part( 'templates/content', 'post' ); endwhile; endif; wp_reset_postdata(); 跟进: 我曾经wp_list_pluck检索过帖子ID的数组: $post_ids = wp_list_pluck( $latest->posts, 'ID' ); 然后使用implode函数将数组转换为字符串: $post_ids_string = implode( …

4
如何在执行后立即打印被切除的sql
我正在寻找一种可以在之后立即打印执行的sql查询的方法: $wpdb->query( $wpdb->prepare("INSERT INTO tbl_watchprosite SET keywords=%s,url_to_post=%s,description=%s, date_captured=%s,crawl_id=%d, image_main=%s,images=%s,brand=%s, series=%s,model=%s,condition=%s,box=%s, papers=%s,year=%s,case_size=%s,status=%s,listed=%s, asking_price=%s,retail_price=%s,payment_info=%s,forum_id=%d", $this->getForumSettings()->search_meta,$element->href,$post_meta['description'],current_time('mysql'),$cid,$post_meta['image_main'],$images,$post_meta[0],$post_meta[1],$post_meta[2],$post_meta[3],$post_meta[4],$post_meta[5],$post_meta[6],$post_meta[7],$status,$post_meta[9],$post_meta[10],$post_meta[11],$this->getForumSettings()->ID) ); 如果我可以看到查询中正在运行什么值,那将是很好。 谢谢
26 wp-query  wpdb 

4
是否有必要在WP_Query调用中使用wp_reset_query()?
我正在使用以下代码来检索帖子: <?php $featuredPosts = new WP_Query(); $featuredPosts->query('showposts=5&cat=3'); while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); ?> <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1> <div class="meta"> By <?php the_author() ?> </div> <div class="storycontent"> <?php the_excerpt(); ?> </div> <?php endwhile; ?> 我需要使用wp_reset_query()吗?如果可以,我应该放在哪里?
26 wp-query 

4
如何限制WP_Query获得的帖子数量?
我一直在研究Google和WPSE,而我反复看到的唯一一件事就是使用showposts,这已被弃用。 我很熟悉WP_Query,并且我认为如果我将posts_per_page自己设置为极限(即5),并且nopaging将true其设置为,则会变成“ 好,我只给你5个帖子 ”之类的东西。但这是行不通的。 我怎样才能做到这一点?
25 posts  wp-query  query 

2
在WP_Query中使用pre_get_posts
我读斯蒂芬·哈里斯的出色回答这个问题,关于使用WP_query(),query_posts()和pre_get_posts。 他说:“ pre_get_posts是一个过滤器,用于更改任何查询。它最常用于仅更改“主查询”。 可以仅pre_get_posts过滤使用?创建的特定辅助查询。例如。WP_Query $my_secondary_loop = new WP_Query(...); if( $my_secondary_loop->have_posts() ): while( $my_secondary_loop->have_posts() ): $my_secondary_loop->the_post(); //The secondary loop endwhile; endif; wp_reset_postdata(); 任何帮助,不胜感激。

1
如何获取每页默认帖子值?从设置->阅读。和帖子总数?
我想检索每页发布的默认值(在设置->阅读中设置的值。 我环顾四周,到目前为止,我只找到查询它的方法。问题是我不想更改已设置的内容,我只是想将其用于分页。我想到了使用$something->post_count.(我可能错了,但据我了解,它返回了当前显示的帖子数量),但是在某些情况下这可能是错误的。 另外,我如何获得帖子总数?

3
我可以强制WP_Query不返回任何结果吗?
我正在使用一个具有搜索功能的网站,该功能允许用户搜索大量帖子元。有一种特定的搜索模式,我想强制不返回任何结果。从技术上讲WP_Query会在数据库中找到结果,但是我想以某种方式覆盖它,以强制它不返回任何结果以触发if( $example->have_posts() )失败。 我可以将某种参数传递给WP_Query,那样'force_no_results' => true会迫使它不返回任何结果?
23 wp-query  loop  search 

4
wp_query是否可以在单个请求中返回帖子元?
我想创建一个wp_query,它将返回posts数组内的元数据。 $args = array ( 'post_type' => 'page', 'meta_key' => 'someMetaKeyName', ); // The Query $query = new WP_Query( $args ); 这将返回类似: 如您所见,帖子没有任何元数据,是否可以将元数据也包含在返回的数组中? PS我出于性能原因不希望额外的wp_queries。


5
首先按元键查询排序列表(如果存在),然后按标题显示按元顺序排序的其余帖子
我正在开发一个自定义分类术语页面模板,在该模板中,我们希望与该术语相关的项目按发布日期(自定义日期字段)进行排序-如果同一天有多个项目(格式如YYYY-MM- DD),然后按标题对它们进行排序,如果尚未填写自定义字段(旧项目),则最后按标题进行排序。 因此,我使用WP_query尝试了一百种不同的方式,它确实返回了我想要的大多数结果-但是在这种情况下,它仅返回具有publication_date的meta_key的项。所有其他项目都将被忽略并且不会显示。我使用“或”的关系尝试了meta_query,并将publication_date比较为EXISTS和NOT EXISTS,但是为我返回了0个结果。 此外,该站点仍在运行3.5.2,并且他们不想升级。 这是我最近的查询,使我获得具有按正确顺序显示的publication_date自定义字段的帖子: $term = get_queried_object(); // find the term of the taxonomy page we are on $wp_query = new WP_Query( array( 'post_type' => 'resource', 'tax_query' => array( array( 'taxonomy' => 'resource_types', 'field' => 'slug', 'terms' => $term->name, )), 'meta_key' => 'publication_date', 'orderby' => 'meta_value_num', 'order' => …

1
我们是否应该信任全球岗位?
@toscho对这个答案发表了评论,这让我再次思考。我们应该在全球范围内获得多少信任,特别是对于像post globals这样的人$post? 所以呢?全局变量可以在检查运行之前被所有人覆盖。这就是全局变量的意义:全局访问。 $post例如,可以肯定是全局变量之一,该全局变量通常在主题本身内或通过插件进行了修改。但是,它还是给定模板内其他应用程序中最常用的全局设置,例如,用于设置相关帖子。 通过回答(和评论)由使用自定义查询引起的特定问题的多个帖子,实际上可以看出,大多数问题是由于未重置自定义查询引起的(自定义查询会更改主查询设置的全局变量)。 由此可见,这$post是不可靠的。使用自定义查询的任何编写不当的代码段都可以更改$post全局,这反过来会破坏某些内容(如相关文章)。 实际上,只有少数WordPress开发人员对核心的内部运作足够了解,并且知道应该避免什么,不应该避免什么。越来越多的用户不知道WordPress核心如何运行。 他们只是下载主题并安装插件即可完成所需的工作,甚至只是从教程中复制代码即可。假设他们安装了一个写得不好的插件,该插件会在单个帖子上打断相关帖子,那么他们怎么知道是什么原因造成的?他们将能够自己解决问题,还是他们是第一百个人就此问题写信给主题作者或在该网站上发布问题? 我的问题:当全局变量$post如此不可靠时,如何防止其他导入的代码引起的此类问题?我们是否应该使用全局性的$post?有哪些选择? 在总结之前,请在这里分享我的想法:我已经考虑过(或者在某些主题和插件中也看到过)使用wp_reset_postdata()或使用wp_reset_query()之前的情况$post,以确保将全局设置重置为主查询的$post。但是为什么我应该在主题中添加代码,因为其他人没有正确地为其插件编写代码?而且,如果有人确实重置了自定义查询,则该操作将不必要地第二次运行,这是不好的。 我想到的第二种方法是先使用,$wp_query然后再使用其方法,例如$wp_query->post。 任何对此的想法将不胜感激。

2
将发布数据重置为嵌套循环中的上一个循环
我正在尝试对嵌套插件使用嵌套循环。循环都可以,但是问题是在第二个嵌套循环($ issue)之后出现的。我想再次访问$ publication循环,但是数据仍然是$ issue数据。 wp_reset_query() 会立即重置为我不想使用的single.php中的主循环。 我可以使用get_posts()而不是新的WP_Query,但是我希望能够使用get_template_part()。 如何将我的数据重置回发布循环,以便第二个“出版物标题”返回出版物,而不是出版物标题? 这是我在single.php中的代码: $publication = new WP_Query( array( 'connected_type' => 'publication_to_post', 'connected_items' => $post->ID, 'fields' => 'ids', 'posts_per_page' => 1, ) ); if ( $publication->have_posts() ) { while ( $publication->have_posts() ) : $publication->the_post(); echo '<h2>Publication title = '.get_the_title().'</h2>'; $pub_id = get_the_ID(); $issue = new …
21 wp-query  loop  reset 

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.