タグ付けされた質問 「loop」

WordPressクエリのコアであるループは、投稿情報にアクセスしてWebサイトに表示する簡単な方法を提供します。

5
カスタムループのページネーションを修正する方法は?
カスタム/セカンダリクエリをテンプレートファイル/カスタムページテンプレートに追加しました。メインクエリループのページネーションを使用する代わりに、WordPressでページネーションにカスタムクエリを使用するにはどうすればよいですか? 補遺 を介してメインループクエリを変更しましたquery_posts()。ページネーションが機能しないのはなぜですか?どうすれば修正できますか?
122 loop  pagination  query 

7
表示されている現在のページのURLを取得する方法は?
カスタムPHPコードを追加して、サイトのページがブラウザーに読み込まれるたびに、そのページのURLが画面にエコーされるようにします。を使用できますがecho get_permalink()、すべてのページで機能するわけではありません。一部のページ(私のホームページなど)には複数の投稿get_permalink()が表示されますが、これらのページで使用すると、表示されたページのURLは返されません(ループ内の最後の投稿のURLを返します)。これらのページについて、URLを返すにはどうすればよいですか? get_permalink()ループが実行される前に起動する特定のフックに接続できますか?または、どういうわけかループから抜け出すことも、完了後にリセットすることもできますか? ありがとう。
55 php  loop  permalinks  urls 

5
ページネーションがカスタムループで機能しない
60日以内に利用できる不動産のリストを表示するために使用しているカスタムループがあります。私は次の関数で呼び出しています: <?php $sixtydays = date('Y/m/d', strtotime('+60 days')); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $query = new PostsOrderedByMetaQuery(array( 'post_type' => array('post', 'real-estate'), 'meta_key' => 'Time Available', 'meta_compare' => '<=', 'meta_value' => $sixtydays, 'paged' => $paged, 'orderby_meta_key' => 'Price', 'orderby_order' => 'ASC' )); ?> <?php while ($query->have_posts()) : $query->the_post(); ?> ループはうまく機能しますが、ページ付けすることはできません。最初の10個(デフォルト)の投稿が表示されますが、ページネーションは表示されません。すべての投稿を表示する唯一の方法は、'posts_per_page' …

2
カスタムWordpressループ(WP_Query)の投稿をカウントしますか?
私はこれをtplacingしてみました: <?php $count = count($custom_posts); ?> <h2><?php echo $count; ?></h2> ループの終わりに: <?php if ( bbp_get_forum_title() == 'Test Forum 1' ) : ?> <?php $custom_posts = new WP_Query(); ?> <?php $custom_posts->query('post_type=blocks&location=Business and Finance&order=DESC'); ?> <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <div class="ad"> <?php the_content(); ?> </div> <?php $count = count($custom_posts); ?> …
41 loop 

9
ループ外でget_the_excerptを使用して抜粋を取得する
呼び出すコードがget_the_title()あり、動作しますが、get_the_excerpt()空を返します。動作させるにはどうすればよいですか? このコードは、「WP Facebook Open Graph protocol」というプラグイン内にあります。変更したい部分は次のとおりです。 if (is_singular('post')) { if (has_excerpt($post->ID)) { echo "\t<meta property='og:description' content='".esc_attr(strip_tags(get_the_excerpt($post->ID)))."' />\n"; }else{ echo "\t<meta property='og:description' content='". [?] ."' />\n"; } }else{ echo "\t<meta property='og:description' content='".get_bloginfo('description')."' />\n"; } ここでは、has_excerpt常に失敗し、get_the_excerpt($post->ID)もう動作しません(非推奨)。 それでは、どのように抜粋を表示できますか? ps:「Advanced Excerpt」プラグインも使用しています
31 loop  excerpt 

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

3
if(is_home()&&!is_front_page())
index.phpファイルには次のコードがたくさんあります。is_front_page()サイトフロントページを表示すると(ブログ投稿インデックスまたは静的ページをis_home()表示する場合)true を返し、ブログ投稿インデックスを表示する場合(フロントページまたは静的ページに表示する場合)true を返すことを理解しています。私はまだ次のコードの使用についていくらか困惑しています- <?php if ( have_posts() ) : ?> <?php if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; ?> このコードがとても人気がある理由の説明は大歓迎です。
23 loop  themes  templates 

3
コンテンツとギャラリーの分割
投稿のコンテンツとギャラリーのショートコードを分割する方法はありますか。ギャラリーの配置方法や場所に関係なく、通常のコンテンツの外側にギャラリーを表示したい。これを使用してショートコード自体を取得できます。 if(has_shortcode(get_the_content(), 'gallery')){ $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); echo do_shortcode($matches[0]); } しかし、ギャラリーの短いコードが最初のインスタンスでない場合、これは機能しません。コンテンツとギャラリーを完全に分割する方法はありますか? 編集:私は半解決策を持っていますが、それを取り巻くには長い道のりのようです。最初に投稿内の最初のショートコードを取得し(「ギャラリー」ショートコードのみが必要なため修正する必要があります)、その後コンテンツからすべてのショートコードを削除します(もう一度、実際にやりたいことではありません)。 <?php if(has_shortcode(get_the_content(), 'gallery')) : ?> <?php $pattern = get_shortcode_regex(); preg_match("/$pattern/s", get_the_content(), $matches); ?> <div id="content"> <?php echo strip_shortcodes(get_the_content()); ?> </div> <div id="gallery"> <?php echo do_shortcode($matches[0]); ?> </div> <?php endif; ?> 編集#2 -OK、投稿でギャラリーショートコードしか取得できませんでした。ギャラリーショートコードフォームを削除するためのフィルターも追加しました。the_content()問題は、ショートコードが投稿されるため、必ずしもショートコードを削除するとは限らないが、「do_shortcode()」を実行できないことです。 Functions.php function remove_gallery($content) { …

4
なぜif(have_posts())を入れなければならないのに、while(have_posts())は十分ではないのですか?
「ループ」について質問があります。 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> <?php endif; ?> The Loop WordPress Codexページから取られたコード。 なぜ私はif部分を置くべきですか?whileループがあればうまくいくようです。 ifステートメントがない場合、どのような場合に問題が発生しますか? 編集 @Chipの答えを受け入れました。正直言って、最後の部分だけが必要だと言っています。 私は自分の質問から知りたいことを知っています。 if一度だけ書き込むヘッダーまたはフッターを配置する場合、ステートメントは必要な場合にのみ使用します。「ラッパー」を使用しない場合、ifステートメントは不要です。
22 loop 


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

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。 これに関するご意見をいただければ幸いです。

1
the_excerpt()の代わりに各投稿のアーカイブテンプレートにYoast SEOメタ説明を表示する方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックワードプレスの開発スタックExchange用。 5年前に閉鎖されました。 私はこの質問を読みましたが、私が探していたものではありませんでした。私はWordpressを初めて使用しますが、機能やすべてと少し混同します。 各投稿のループでメタ記述を取得するにはどうすればよいですか? ありがとう!

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 

2
get_pagesを使用してWordPressの直接の子ページのみを取得する
ページのすべての直接の子を取得しようとしています。しかし、私はすべての子供と孫も同様に取得しています。何か案は? PHPソース: $args = array( 'child_of' => $post->ID, 'parent ' => $post->ID, 'hierarchical' => 0, 'sort_column' => 'menu_order', 'sort_order' => 'asc' ); $mypages = get_pages( $args ); foreach( $mypages as $post ) { $post_tempalte = the_page_template_part(); get_template_part( 'content' , $post_tempalte ); } 私$argsのドキュメントによれば正しいはずですが、それは完全に無視しparentていhierarchicalます。 私のページ構造は次のとおりです。 親 -child 1 -child 2 --Child子供1〜2 …

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