我目前正在使用一个定制的Twentyle2Child主题,并希望使用一个快捷码在主页上显示最后5篇文章。我已尝试使用以下代码(添加到functions.php
) 但是没有用-当我在主页上添加快捷码时,它不会显示任何内容,尽管就我所能看到的而言,它应该会显示,而且我有一个测试帖子。
function custom_prev_posts($limit = 5){
global $wpdb, $post;
$html = \'\';
$prev_posts = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE $wpdb->posts.post_date < \'%s\' AND $wpdb->posts.post_type = \'post\' AND $wpdb->posts.post_status = \'publish\' ORDER BY $wpdb->posts.post_date DESC LIMIT $limit", $post->post_date ) );
if($prev_posts){
$html .= \'<ul>\';
foreach ( $prev_posts as $prev_post ) {
$html .= \'<li><a href="\' . get_permalink( $prev_post->ID ) . \'">\' .$prev_post->post_title . \'</a></li>\';
}
$html .= \'</ul>\';
}
return $html;
}
add_shortcode(\'last5\', \'custom_prev_posts\');
我想这个问题可能与2012年的主题有关。有没有人知道我做错了什么,或者有没有人知道如何在一个页面中显示最新的5篇帖子?
最合适的回答,由SO网友:Milo 整理而成
问题是你的$limit
var,您不能设置这样的默认值,因为WordPress会用空值覆盖它。查看Shortcode API 获取传递和设置快捷码属性的正确方法。
function custom_prev_posts( $atts ){
extract( shortcode_atts( array(
\'limit\' => 5
), $atts ) );
// the rest of your code, $limit now works correctly
}
现在,您还可以通过向快捷码添加限制来设置自定义限制:
[last5 limit=10]
虽然last5是一个可以显示除5以外的帖子数量的短代码的奇数名称:)
此外,为了将来的参考,enable debugging 因此,您可以看到代码生成的错误。