【发布时间】:2018-05-10 06:02:09
【问题描述】:
我正在尝试在管理编辑屏幕中对自定义列进行排序。该列包含一个整数值(投票数)。
要生成列,我使用这个“标准”代码:
add_filter( 'manage_edit-entries_sortable_columns', 'cutify_entries_columns_sortable' );
function cutify_entries_columns_sortable( $columns )
{
$columns['entry_vote_count'] = 'entry_vote_count';
return $columns;
}
add_filter( 'manage_entries_posts_columns', 'cutify_entries_columns_head' );
function cutify_entries_columns_head($defaults)
{
unset( $defaults['date'] );
$defaults['entry_vote_count'] = 'Votes';
return $defaults;
}
add_action('manage_entries_posts_custom_column', 'cutify_entries_columns_content', 10, 2);
function cutify_entries_columns_content($column_name, $post_ID)
{
if ($column_name == 'entry_vote_count')
{
$number = rand(1,1000);
print intVal($number);
}
}
问题是尝试对此列进行排序。我在这里和其他网站上阅读了很多答案,如果值来自 post_meta,我确实知道如何排序,但正如您所见,在这种情况下,值来自函数调用的返回值。
是否有任何方法可以对不基于 post_meta 值的自定义列进行排序?
【问题讨论】:
-
您能否更新您的问题并包含来自
cutify-votes/classes/class.API.php的代码?或者您可以将其发布在 Pastebin.com 上,并将粘贴到您的问题的链接添加到您的问题中。 -
感谢 Sally CJ,但类中的代码不相关。相关的是它返回的整数值。我已将上面的代码示例更新为使用随机 int 而不是函数调用。
-
抱歉,您确定
class“不相关”吗?我的意思是,class中必须有一个方法/function可以保存/更新特定帖子的投票数,对吧?即使投票数没有保存到帖子元表中。 -
@JohnMcMurray 您正在使用 rand 函数,它每次都会生成新数字,因此当您尝试对列进行排序时,rand 函数会生成新数字,因此它不会给您完美的结果,因此您必须存储唯一的帖子投票post meta 中的值然后它会正常工作。