2014-01-13 201 views
0

我嘗試了很多東西,但不可能得到它的作品。訂購WordPress的帖子最新評論

我終於刪除了我的嘗試

有一個插件呢?

SOLUTION:

在你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'); ?> 

回答

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; 
} 

編輯:

忘了補充一個比特,無論你有你後循環,請確保您按修改日期排序,否則此黑客行爲無效。例如:

global $wp_query; 
$args = array_merge($wp_query->query, array('orderby' => 'modified')); 
query_posts($args); 
+0

似乎是一個不錯的主意,但它不工作...我說這function.php – user1708580

+0

它的工作(見文章編輯) – user1708580

+0

這是偉大的,如果你看評論的帖子的一部分。感謝和+1 – henrywright

0

有一個plugin,但它一直沒有更新在2年以上。它可能不再被維護或支持,並可能在與更新版本的WordPress一起使用時遇到兼容性問題。