私の素敵な同僚は、Wordpressでそれを入手するのに苦労する何かをもう一度設計しました。驚いたことに、それは私が以前に何度もやったことがあるものです。最近の投稿とページコンテンツを1ページにまとめました。
ホームページはページです。ページのコンテンツのすぐ上に3つの最近の投稿があります。投稿のために私は<!--more-->
タグの前にコンテンツの最初の部分を表示する必要があります。
そのループはうまくいくようです。テンプレートの後半で、実際のページコンテンツをループします。私が何をしても、それはいつも私に危険な結果をもたらします。
これが私のindex.php/page.phpテンプレートのトリミング版です(それらは偶然同じものです):
<div id="content">
<?php get_template_part('news'); ?>
<?php
$args = array(
'hierarchical' => false,
'sort_column' => 'menu_order'
);
$pages = get_pages($args);
?>
<?php while(have_posts()): the_post(); ?>
<?php $id = get_the_ID(); ?>
<div id="page-content">
<!-- lets have a dodgy menu here! -->
<ul id="navigation">
<?php foreach($pages as $page): ?>
<li<?php echo (($page->ID !== $id) ? '': ' class="active"'); ?>>
<a href="<?php echo get_page_link($page->ID); ?>"><?php echo $page->post_title; ?></a>
</li>
<?php endforeach; ?>
</ul>
<div class="content-wrapper">
<div class="subnav-wrapper">
<ul id="subnavigation">
<li><a href="#">jaarrekeningen</a></li>
<li><a href="#">administraties</a></li>
<li><a href="#">salarisverwerking</a></li>
<li><a href="#">fiscaal advies</a></li>
<li><a href="#">overig advies</a></li>
</ul>
</div>
<div class="content"><?php the_content(); ?></div>
<div class="clear"></div>
</div>
</div>
<?php endwhile; ?>
<?php get_template_part('social'); ?>
</div>
ご覧のとおり、news
テンプレートが含まれています。ここにあります:
<?php
$args = array('numberposts' => 3);
$posts = get_posts($args);
global $more;
?>
<div id="news">
<?php foreach($posts as $key => $post): setup_postdata($post); ?>
<?php if($key > 0): ?><div class="news-item-splitter"></div><?php endif; ?>
<?php $more = 0; ?>
<div class="news-item">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php the_content('Lees meer'); ?>
</div>
<?php endforeach; wp_reset_postdata(); ?>
<div class="clear"></div>
</div>
何がおかしいのですか?
前もって感謝します。
カスタムループにWordpressの変数posts
を使用しないでください。 news.php
で変数名をitems
に変更した後、すべてうまくいきました。
変数post
をitem
に変更すると、再び機能しなくなりました...
<?php foreach($items as $post): setup_postdata($post); ?>
<!-- post -->
<?php endforeach; wp_reset_postdata(); ?>