我的主页上有一个循环显示最近的3篇博文,这是从页脚中包含的。如果我去网站的其他地方,例如不同的博客文章,'the_permalink'不是抓住特色3博客帖子链接,而是抓住你当前所在页面的链接。
这3篇博客文章会随着新帖的添加而发生变化,因此我无法定义该链接只是特定的博客文章。
以下是显示第一篇博文的代码。在footer.php中找到,因此显示在每个页面上。
<div id="news-container-1">
<?php
// Create a variable to hold our custom Loop results
$excludes = array('4135');
$frontpageposts = get_posts( array(
'numberposts' => 1, // only the 3 latest posts
'post__not_in' => $excludes
) );
// Create output only if we have results
// Customize to suit your HTML markup
if ( $frontpageposts ) {
foreach ( $frontpageposts as $fppost ) {
// setup postdata, so we can use template tags
setup_postdata($fppost);
?>
<div <?php post_class(); ?>>
<h4><a href="<?php the_permalink(1); ?>"><?php //the_title(); ?>Latest News #1</a></h4>
<div class="post-entry">
<?php
$content = $post->post_content;
$searchimages = '~<img [^>]* />~';
/*Run preg_match_all to grab all the images and save the results in $pics*/
preg_match_all( $searchimages, $content, $pics );
// Check to see if we have at least 1 image
$iNumberOfPics = count($pics[0]);
if ( $iNumberOfPics > 0 ) { ?>
<!-- GRAB THE IMAGE AND USE WHATEVER HTML YOU LIKE -->
<img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" /></a>
<?php }
?>
<?php //the_excerpt(); ?>
</div>
</div>
<?php }
}
?>
</div>
答案 0 :(得分:1)
the_permalink()
没有任何参数,因此请删除“1”。
您需要更改设置帖子的方式。 setup_postdata()目前使用不当。
if ( $frontpageposts ) {
global $post;
foreach ( $frontpageposts as $post ) {
// setup postdata, so we can use template tags
setup_postdata( $post );
然后在foreach循环结束时,您需要重置帖子对象。
改变这个:
<?php }
}
对此:
<?php }
wp_reset_postdata();
}