2011-09-08 48 views

回答

1

我已经回答过类似的问题here,但我会总结一下我认为会对你有帮助的事情。它将涉及您了解更多关于here的自定义查询。

您可以使用单独的'div'元素通过不同的方法对每个帖子进行排序。然后你可以使用jQuery来隐藏它们(除了说'最近'的面板)。然后,您可以使用链接在用户使用jQuerys .click()事件处理程序单击它时隐藏相关的'div'元素(隐藏所有其他元素)。

要使用按各种方法排序的帖子填充每个'div'元素,您可以使用自定义查询。例如,按照评论数量排序,在'functions.php'文件中定义这个函数。

function get_most_commented($limit=10) { 
    global $wpdb; 

    $most_commented = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts WHERE post_type='post' AND post_status = 'publish' ORDER BY comment_count DESC LIMIT 0 , $limit"); 

    foreach ($most_commented as $post) { 
     setup_postdata($post); 
     $id = $post->ID; 
     $post_title = $post->post_title; 
     $count = $post->comment_count; 
     $output .= '<li><h1><a href="'. get_permalink($id).'">'.$post_title.' - '.$count.' comments</a></h1> post_excerpt;</li>'; 
    } 
    return $output; 
} 

,那么你从相关“DIV”元素中上面调用该函数:

<?php echo get_most_commented(15) ?> 

有序/无序列表中(可显示最多评论15个帖子)。这个例子只是输出标题和摘录,但你可以改变HTML,并使用一些CSS样式来得到你想要的。

希望这会有所帮助!尽管你已经启发我写了一篇关于这个的教程!

编辑: 我刚刚看过你给的Nettuts例子 - 他们'使用php'get'方法重新排序'的帖子。点击链接后,您将被发送到同一页面,但具有不同的获取变量(例如:recent = true,commented = true)。该页面包含一系列php if语句,根据哪些GET变量设置为'true'来确定帖子应如何排序。

这比不需要jQuery(或者确实是javascript打开)的优势 - 它不会同时加载所有三种排序方法 - 只有它所需的一种。

+0

我把上面的代码中function.php然后把这个代码 '' 上述 '<! - 搜索项目 - ><?php endwhile; else:?><?php endif; ?>(存档/搜索页面) 我无法看到搜索/存档页面(search.php)中的任何更改? – atali

+0

我使用此代码获得最多浏览的帖子 ''??php query_posts('meta_key = post_views_count&orderby = meta_value_num&posts_per_page = 3&order = DESC'); if(have_posts()):while(have_posts()):the_post(); ?>' 我想补充“观看最多”(post_views_count)选项卡非常久远的“评论最多” 在帖子排序查询 请帮帮我,我会尽力 很困惑:) – atali

+0

你想要的人能够对搜索结果进行排序?如果是这样,您必须在查询中包含搜索条件。如果这只是排序所有(或你的前15个职位),那么你会想把它放在你的index.php文件中。 –

1

我明白你现在的样子。在阅读了一下之后,我意识到了一个更好的(最好的)方法来做到这一点。这对我的第一个答案是一个完全不同的方法,所以我把它作为第二个答案发布。

我写了详细的教程here。简而言之,您可以定义指向您所在页面的链接,但是可以使用GET变量来指示WordPress以某种方式对帖子进行排序。默认情况下,WordPress按日期排序,但追加

?&orderby=comment_count&order=desc 

它将按不同的顺序排序(通过本例中的评论数)。这对于发布视图有点不同,因为这是一个自定义字段(并且您仍然需要wp-post views插件)。

希望这会有所帮助!

+0

嘿非常感谢你! 但我无法打开您的博客? – atali

+0

我觉得它有点慢。我遇到了麻烦!我刚刚尝试过,而且它似乎工作正常。 –

相关问题