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

「wp-query」はあいまいに2つのことのいずれかを指します。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> または Echo 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
投稿タイプごとに異なる引数を持つクエリを組み合わせる
2つの異なる投稿タイプを1つのループにマージし、それらをランダムに表示するサイトにセクションを構築しています。問題は、タイプごとの投稿数を制限する方法を見つけるのに苦労していることです。 これが私が試したものです: 複数の投稿タイプを持つ1つのクエリは、配列で実現できます。 $args = array( 'post_type' => array( 'photos', 'quotes' ), ... ...しかし、タイプごとの特定の数の投稿に制限することはできません。 WP_Queryを実行する前に、2つのクエリ引数配列をマージします。 $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値を持つメタクエリ
私はすべての賃貸物件を表示しようとしています。まずは賃貸されていないすべての物件、次に現在賃貸されているすべての物件を表示します。チェックボックス(レンタルされている場合はtrueまたはfalse ... trueを返す)である、レンタル価格(_price_rented)のカスタムポストメタを持つカスタムポストタイプ 'rent'があります。使用可能な(レンタルされていない)プロパティが最初に表示され、次にレンタルされたプロパティが表示されるすべてのプロパティを表示するようにクエリを変更する必要があります。 これが私のクエリです: $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) "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][)]', // …

4
2つのクエリをマージする方法
最初に画像付きの投稿を表示し、次に画像なしの投稿を最後に表示することで、カテゴリ内の投稿を並べようとしています。2つのクエリを実行してなんとかできましたが、2つのクエリをマージしたいと思います。 私は以下を持っています: <?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()1つの関係tax_query()(ANDまたはOR)のみを処理しますが、でこれらの関係を混合して使用する必要があり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 MBのメモリをリークします。そして、私はこの関数を頻繁に呼び出すので、物事はかなり速く毛むくじゃらになります... :(結果の$ 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(); …

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
1つのページで複数のクエリを使用するときに現在のループの投稿数を取得する
ループ内の現在の投稿の数を取得しようとしています。テーマの1つのページで複数のループを使用しています。これまでのところ: $my_post_count = $wp_query->post_count; しかし、$ my_post_countを印刷すると、WPサイトのすべての投稿の数が返されます。1つのページで複数のクエリを使用することと関係がありますか?すべてのループの後にwp_reset_queryを使用して、その方法で物事がスローされていないことを確認しました。何が悪いのですか?
10 wp-query  loop 

1
一部の404でループが空にならないのはなぜですか?
私は奇妙な問題に出くわしました。 3レベル以上の深さのランダムなURLにアクセスするとします。 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てきます。誰かがこれを説明できますか? これまでにわかったこと: 3つ以上のレベルでのみキックインする理由は、そのWPがその前に投稿と添付ファイルを検索するため、何らかの形で他の動作が発生するためです。 WPがリクエストをある時点で404として認識したとしても、最新の投稿をフェッチするようです。@kaiserおよび@GMの助けを借りて、これを/wp-includes/class-wp.php:608からどこかに追跡しました

3
1つのカスタムフィールドでフィルターし、別のフィールドで注文しますか?
カスタム投稿タイプ「Listing」があり、カスタムフィールドを持つすべてのリストを取得し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がリストビューですべてのカスタム投稿タイプのメタデータを取得する
PHPが死にかけているという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が10個程度のリストを作成するためにすべての投稿(すべて1200個)のメタデータをロードしているようです。クエリの1つだけで、92000行が返されます。高度なカスタムフィールドと独自のフレームワークを持つテンプレートを使用しているため、各投稿にはかなりの量のメタデータが添付されています。これはPHPで処理するにはデータが多すぎると思います。ここで上限に達しました。1200の投稿は来年には簡単に2倍になるでしょう。 最初のページの読み込みを強制して日付の並べ替えを追加するか、すべてのメタデータの読み込みに関する問題を修正するにはどうすればよいですか?

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