我尝试了很多东西,但不可能让它发挥作用。
我终于删除了我的尝试
是否有插件?
解决方案:
在你的function.php中:
/**
* Comment_pre_save filter updates post_modified date
* to coincide with new comments. Since posts are ordered by
* post_modified, this will 'bubble' up more active posts to the top
*/
add_filter('preprocess_comment', 'update_post_modified');
function update_post_modified($comment_data){
global $wpdb;
$wpdb->update(
$wpdb->posts,
array(
'post_modified' => current_time('mysql'), // string
),
array( 'ID' => $comment_data['comment_post_ID'] ),
array(
'%s'
),
array( '%d' )
);
return $comment_data;
}
在index.php中:
<?php $posts=query_posts($query_string . '&orderby=modified'); ?>
答案 0 :(得分:2)
这有点像黑客,但我必须为我的一个项目做同样的事情。每次使用preprocess_comment
过滤器对帖子发表新评论时,我都会更新帖子的“post_modified”字段:
/**
* Comment_pre_save filter updates post_modified date
* to coincide with new comments. Since posts are ordered by
* post_modified, this will 'bubble' up more active posts to the top
*/
add_filter('preprocess_comment', 'update_post_modified');
function update_post_modified($comment_data){
global $wpdb;
$wpdb->update(
$wpdb->posts,
array(
'post_modified' => current_time('mysql'), // string
),
array( 'ID' => $comment_data['comment_post_ID'] ),
array(
'%s'
),
array( '%d' )
);
return $comment_data;
}
修改强>
忘记添加一位,无论你在哪里进行post循环,都要确保按修改日期订购,否则这个hack将无效。例如:
global $wp_query;
$args = array_merge( $wp_query->query, array( 'orderby' => 'modified' ) );
query_posts($args);
答案 1 :(得分:0)
有plugin,但在2年多时间内未更新。它可能不再被维护或支持,并且在与更新版本的WordPress一起使用时可能存在兼容性问题。