我正在寻找一种方法来显示我的Wordpress网站主页上的最后5个帖子,所以我假设我需要利用短代码来做到这一点,但我找不到任何预先存在的代码来添加到functions.php将显示标题,日期和帖子摘录。
有人可能会帮我这个吗?
答案 0 :(得分:2)
有多种方法可以做到这一点,但基本思路类似于您在主题的 INDEX.PHP 页面中看到的代码。您进行查询,循环显示帖子,然后在结束时重置查询,这样您所做的就不会干扰您的主页。
function Last5posts()
{
$args = array( "showposts" => 5 );
query_posts($args);
$content = "";
if( have_posts() ) :
while( have_posts() ) :
the_post();
$link = get_permalink();
$title = get_the_title();
$date = get_the_date();
$content .= "<div style='padding: 5px; border: 1px solid red'>";
$content .= "<h3><a href='$link' target='_top'>$title / $date</a></h3>\n";
$content .= "<p class='excerpt'>" . get_the_excerpt() . "</p>";
$content .= "</div>";
endwhile;
wp_reset_query();
endif;
// Leave one line commented out depending on usage
echo $content; // For use as widget
//return $content; // for use as shortcode
}
要将此注册为窗口小部件,请在末尾启用“echo”,然后将此行添加到文件的底部:
register_sidebar_widget(__('Last 5 Posts'), 'Last5posts');
您可能希望添加一些额外的代码,将输出放入窗口小部件包装器DIV,就像其他侧边栏小部件一样。 (或者,如果您在传统的侧边栏之外的某处使用它,请不要这样做。)
您还可以使用以下行将其注册为短代码处理程序。在结尾处注释掉“回声”并取消注释“返回”。
add_shortcode('Last5Posts', 'Last5posts' );
您需要确保不在博文中使用短代码,否则最终可能会以递归方式调用此代码。可能是一件坏事。
您可能还希望在函数名称中添加特定于主题的前缀,以避免命名空间冲突。
答案 1 :(得分:0)
<?php
$args = array('numberposts' => 5);
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
echo $recent["post_title"].' '.$recent['post_date'].' '.$recent['post_excerpt'].'<br />';
}
?>
Wordpress Codex并不是那么糟糕。