私はワードプレスで複数のループコーデックスを読んだことがありますが、これを行う方法についてはまだ少し混乱しています。ワードプレス - どのように2つ以上のループを一緒にマージしますか?
デフォルトクエリから3つのクエリを実行する必要があります。
-1 = Xカテゴリ
-2から最新のポスト= Yカテゴリ
-3からすべての記事= Xカテゴリの(それに-1引っ張っているため)、最新以外のすべての投稿
これは私が現在、私のindex.phpがセットアップされている方法です。
<?php
get_header(); ?>
<?php
$args = array(
'posts_per_page' => 1,
'category_name' => 'news',
);
$news_query = new WP_Query($args);
if ($news_query->have_posts()) :
?>
<?php while ($news_query->have_posts()) : $news_query->the_post(); ?>
<?php
$featured_img = get_the_post_thumbnail_url($post->ID, 'full');
$date = Date('m/y');
$title = get_the_title($post->ID);
$link = get_the_permalink($post->ID);
?>
<?php echo '<div class="recent-news-banner" style="background: url(' . $featured_img . ') no-repeat center center; background-size: cover;">'; ?>
<?php echo '<div class="container"><div class="row"><div class="col-md-8"><div class="' . 'entry-meta' . '"><div class="meta-date">' . $date . '</div><div class="meta-info"><div class="meta-title"><h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2><div class="meta-excerpt">' . get_the_excerpt() . '</div></div></div></div></div></div>'; ?>
<?php echo '</div>'; ?>
<?php endwhile;?>
<?php else : ?>
<p><?php _e("No News Found", 'news'); ?></p>
<?php wp_reset_postdata(); ?>
<?php endif
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
$args = array(
'posts_per_page' => -1,
'category_name' => 'events',
);
$events_query = new WP_Query($args);
echo '<div id="owl-testimonials" class="owl-theme owl-carousel container"><div class="row"><div class="col-xs-12">';
if ($events_query->have_posts()) :
?>
<?php while ($events_query->have_posts()) : $events_query->the_post(); ?>
<?php
$featured_img = get_the_post_thumbnail_url($post->ID, 'full');
$date = Date('F j, Y');
$title = get_the_title($post->ID);
$link = get_the_permalink($post->ID);
?>
<?php echo '<div class="event-item" style="background: url(' . $featured_img . ') no-repeat center center; background-size: cover;">'; ?>
<?php echo '<div class="meta-date">' . $date . '</div>'; ?>
<?php echo '</div>'; ?>
<?php echo '<div class="meta-info"><div class="meta-title"><h3><a href="' . get_permalink() . '">' . get_the_title() . '</a></h3></div></div>'; ?>
<?php endwhile;?>
<?php echo '</div></div></div>'; ?>
<?php else : ?>
<p><?php _e("No News Found", 'news'); ?></p>
<?php wp_reset_postdata(); ?>
<?php endif
?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_footer();
私は2つのwp_queriesとしてそれを書いたが、二番目のは私にロードされません。私はこれのために第三を試みなかった。最初にデフォルトのループに対してwp_queryが問題ありませんか?第二に、これをどのように再加工してループ以上のもので動作するのか。
生成されたコンテンツはソースに表示されますが、 '.owl-carousel'クラスには' display:none'スタイルがあるようです。 – Will
ソースを見ているもう一つの問題は、 '#primary 'が' .recent-news-banner'の中にあるようですが、私はそのdivを閉じたので、ここで何が起こっているのか分かりません。私はそれがループが書かれている方法だと思います。 –
最初のループで2番目のエコーで開かれた8個のdivsをカウントしますが、7個だけが閉じます。実際に、エコーをやっている理由はありますか?これらのdivをインライン化するだけで、書式を設定してインデントすることができますので、何が起こっているのかを簡単に確認できます。 – Will