AJAX分页偏移在相邻页面上返回相同的帖子

时间:2013-05-08 作者:steakoverflow

我有一个简单的AJAX分页,似乎工作得很好,用pagenum和排序顺序参数调用一个Wordpress页面(我知道这并不理想),每次调用它都会返回4条自定义帖子。我在测试时发现的问题是,如果项目在db中是这样订购的:

item1: 4 votes
item2: 3 votes
item3: 3 votes
item4: 3 votes
----page2----
item5: 3 votes
item6: 2 votes
...
。。。在自定义字段中有3票的任何项目都有可能显示为分页第2页的第一个项目。这实际上从列表中删除了其中一项,而且我似乎找不到正确查询get_帖子的方法。

这就是它现在的样子:

elseif($savjet_order == \'votes\') :
$offset = (($savjet_per_page * $savjet_page) /* - $savjet_per_page*/ );
//$offset = $offset < 0 ? 0 :  $offset;
$args = array(
\'numberposts\'     => $savjet_per_page ,     
\'offset\' => $offset ,
\'meta_key\' => \'wpcf-glasova\',
\'orderby\'         => \'meta_value_num post_date\',
\'order\'           => \'DESC\',   
//\'paged\' => $savjet_page , 
\'post_type\'       => \'savjet\',    
\'post_status\'     => \'publish\'
/*\'suppress_filters\' => true*/ ); 

$savjeti = get_posts($args);
。。。将post\\u date(甚至date)添加到orderby子句似乎并没有改变任何事情(“date”似乎会使列表上升,从而使情况更糟,即使顺序是DESC)。

1 个回复
SO网友:steakoverflow

解决方法:

function myedit_posts_orderby($orderby_statement) {
    $orderby_statement = "wp_postmeta.meta_value+0 DESC, wp_posts.post_date DESC";
    return $orderby_statement;
}

add_filter(\'posts_orderby\', \'myedit_posts_orderby\');
WP_Query...
。。。出于某种原因,WP\\U查询只应用了迄今为止的描述顺序,而不应用于元值。

结束

相关推荐

使用jQuery FancyBox从前端发出AJAX请求

我希望能够使用jQuery Fancybox的Ajax特性从前端请求数据。下面是我在插件部分使用的代码的一部分:wp_localize_script( \'wpPluginjs\', \'ajax_vars\', array( \'url\' => admin_url( \'admin-ajax.php\' ), \'nonce\' => wp_create_nonce( \'ajax-nonce\' ) )&