タグ付けされた質問 「wp-query」

「wp-query」はあいまいに2つのことのいずれかを指します。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); この機能は完全に機能します。ただし、クエリ投稿のコーデックスを読んだ後、デフォルトのクエリを変更する好ましい方法として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セッションで変数を保存および受信する方法
私はいくつかのチェックボックスと入力ボックスselectboxesを持つフォームを持っています、そしてそれはユーザーが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 ?>"> セッションに値を保存し、ブラウザのボタンを再表示/再読み込み/戻るときに呼び出す方法はありますか? セッションに保存されたものを読み取り、「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、それが「のようなものになるだろう[OK]を、私はあなたにあげるだけで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
ページごとのデフォルトの投稿を取得するにはどうすればよいですか?設定から>読み取り。投稿の総数は?
1ページあたりの投稿のデフォルト値(設定->読み取りで設定されている値)を取得したい。 私は周りを見回しましたが、今までのところそれを照会する方法を見つけました。問題は、設定されたものを変更したくない、ページネーションの目的でそれを取得したいだけです。私は使用することを考えました$something->post_count.(私は間違っているかもしれませんが、現在表示されている投稿の量を返します) また、どうすれば投稿の総数を取得できますか?

3
WP_Queryに結果を返さないように強制できますか?
私は、ユーザーが多くの投稿メタを検索できる検索機能を備えたWebサイトで作業しています。強制的に結果を返さない特定の検索パターンがあります。WP_Queryは技術的にはデータベースで結果を見つけますが、それを何らかの方法でオーバーライドして、結果を返さないようにして強制的if( $example->have_posts() )に失敗させたいと思います。 'force_no_results' => true結果を返さないように強制するような、WP_Queryに渡すことができるパラメーターの種類はありますか?
23 wp-query  loop  search 

4
wp_queryは単一のリクエストで投稿メタを返すことができますか?
posts配列内に投稿メタを返すwp_queryを作成したいと思います。 $args = array ( 'post_type' => 'page', 'meta_key' => 'someMetaKeyName', ); // The Query $query = new WP_Query( $args ); これは次のようなものを返します: 投稿にメタデータがないことがわかるように、返された配列にもメタデータを含めることは可能ですか? PSパフォーマンス上の理由から、追加のwp_queriesは必要ありません。

6
ポストループからカスタム分類を除外する方法
ループ内のカスタム分類からすべての投稿を除外する簡単な方法はありますか?私は高くも低くも見えてきましたが、SE、SO、Googleのいずれもまっすぐな答えがないようです。 WPDBクエリを介して実行できることは知っていますが、それはかなり単純なものにジャンプするための大きなロープのように思えます。

5
リストをメタキー(存在する場合)で最初にソートし、メタキーのない残りの投稿をタイトル順に並べるクエリ
私はカスタム分類用語ページテンプレートで作業していますDD)次にそれらをタイトルで並べ替え、カスタムフィールドが入力されていない場合はタイトルで並べ替えます(古いアイテム)。 したがって、WP_queryを使用して100種類の方法を試してみましたが、ほとんどの結果が必要に応じて返されますが、この場合は、public_dateのmeta_keyを持つアイテムのみが返されます。他のすべてのアイテムは無視され、表示されません。「or」のリレーションを使用してmeta_queryを試し、publication_dateをEXISTSおよびNOT EXISTSとして比較しましたが、0の結果が返されました。 また、サイトはまだ3.5.2を実行しているため、アップグレードする必要はありません。 以下は、public_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' => 'DESC', …

1
ポストグローバルを信頼する必要がありますか?
@toschoはこの答えにコメントを残しました。グローバルスコープ、特にポストグローバルについてはどの程度信頼する必要があり$postますか? だから何?グローバル変数は、チェックを実行する前に全員から上書きできます。それがグローバル変数のポイントです:グローバルアクセス。 $postたとえば、テーマ自体またはプラグインによって大部分が変更されるグローバルの1つです。それでも、たとえば関連する投稿を設定するために、特定のテンプレート内の他のアプリケーションで最も一般的に使用されるグローバルです。 カスタムクエリの使用に起因する特定の問題のいくつかの投稿への回答(およびコメント)から、ほとんどの問題はカスタムクエリがリセットされていないことが原因であることが際立っています(カスタムクエリはメインクエリによって設定されたグローバルを変更します)。 これから、$post信頼できないことが明らかです。カスタムクエリを使用するコードの不完全な記述は、$postグローバルを変更する可能性があり、その結果、何か(関連する投稿など)が破損します。 実際にはコアの内部動作について十分な知識があり、避けるべきものとそうでないものを知っているWordPress開発者はほんの一握りです。ユーザーの人口が多いため、WordPressコアがどのように動作するかはわかりません。 テーマをダウンロードしてプラグインをインストールするだけで、必要なことを実行したり、チュートリアルからコードをコピーしたりできます。彼らは、単一の投稿で関連する投稿を中断する、よく書かれていないプラグインをインストールするとします。どうして、それが原因で何がわかるのでしょうか?彼らはそれを自分で整理することができますか、それとも彼らはこの問題についてテーマ作者にメールを書いたり、このサイトに質問を投稿したりする100人目になるでしょうか? 私の質問:グローバルのようなもの$postがそれほど信頼できないときに、他のインポートされたコードによって引き起こされるそのような問題からどのように保護できますか?$postまったく同じようなグローバルを使用する必要がありますか?代替手段は何ですか? 結論を出す前にここで私の心を共有するために:を使用wp_reset_postdata()するwp_reset_query()前または使用する前に(および一部のテーマとプラグインでも見た)$post、グローバルがメインクエリにリセットされることを確認しました$post。しかし、他の誰かが自分のプラグインを適切にコーディングしなかったので、なぜ私のテーマでコードを膨らませなければならないのですか?また、誰かがカスタムクエリを適切にリセットした場合、この操作は不要な2回目に実行されますが、これは良くありません。 私が考えた2番目の方法は、$wp_queryなどを使用してからそのメソッドを使用することです$wp_query->post。 これに関するご意見をいただければ幸いです。

2
ネストされたループ内の前のループへの投稿データのリセット
投稿から投稿へのプラグインでネストされたループを使用しようとしています。ループは両方とも機能しますが、2番目のネストされたループ($ issue)の後に問題が発生します。$ publicationループに再度アクセスしたいのですが、データは依然として$ issueデータです。 wp_reset_query() single.phpのメインループに戻りますが、これは望ましくありません。 私は使用することができget_posts()、新たなWP_Queryのではなく、私は使用することができるようにしたいですget_template_part()。 2番目の「出版物のタイトル」が号ではなく出版物を返すように、データを出版物のルー​​プにリセットするにはどうすればよいですか? 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 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.