使自定义帖子类型列可排序

时间:2013-09-26 作者:leemon

我的网站有两种自定义类型:拍卖和拍卖。地块通过post_parent 领域我在管理区的地块列表中添加了一个拍卖栏。

function theme_lot_custom_columns($columns){
    $new = array();
    foreach($columns as $key => $value) {
        if ($key==\'date\') {
            // Put the Auction column before the Date column
            $new[\'auction\'] = __(\'Auction\');
        }
        $new[$key] = $value;
    }
return $new;
}
add_filter(\'manage_lot_posts_columns\', \'theme_lot_custom_columns\');

function theme_lot_custom_column($column, $post_id) {
    if ($column === \'auction\'){
        $post = get_post($post_id);
        if ($post->post_parent) {
            $post_parent = get_post($post->post_parent);
            echo \'<a href="\' . get_edit_post_link($post_parent->ID). \'">\' . $post_parent->post_title . \'</a>\';
        }
    }
}
add_action(\'manage_lot_posts_custom_column\', \'theme_lot_custom_column\', 5, 2);
我想让这个拍卖栏按拍卖标题的字母顺序排序。我认为添加以下代码就足够了,但没有。

function theme_lot_sortable_columns($columns) {
    $columns[\'auction\'] = \'auction\';
    return $columns;
}   
add_filter(\'manage_edit-lot_sortable_columns\', \'theme_lot_sortable_columns\');
任何帮助都将不胜感激。

谢谢

2 个回复
SO网友:Mike Baxter

我相信你的谜题中缺少的是一个额外的过滤器来执行排序并返回排序后的数据。尝试以下操作:

function sort_column_by_auction_1357( $vars ){
if ( isset( $vars["orderby"] ) && "auction" == $vars["orderby"] ) {
    $vars = array_merge( $vars, array(
        "orderby" => "auction"
    ) );
}
return $vars;
}
add_filter( "request", "sort_column_by_auction_1357" );
这对我有用。我在所有自定义帖子类型视图中添加了“按上次修改排序”。

SO网友:sabarnix

Try this code

add_action( \'pre_get_posts\', \'as25_column_orderby\' );
function as25_column_orderby( $orderby ) {
 if( ! is_admin() || \'lot\' != $query->get( \'post_type\' ) )
    return;

 $orderby = $query->get( \'orderby\' );

  if( \'auction\' == $orderby ) {
   $query->set( \'orderby\', \'parent\' );
  }
}
结束

相关推荐

Columns in a "post"

我知道所有wordpress都是围绕某些关键的“实体”构建的。其中一些是,这一列表并非详尽无遗,因为我知道wordpress几乎没有其他关键的“实体”每个wordpress网站都有一个“主页”,当我更改任何“主题”设置时,就是这个“主页”反映了这些更改。例如,我可以将主页配置为具有“侧栏”+“内容”+“侧栏”或其任何变体。我想知道的是,如果我可以让我的“帖子”也使用列。因为我希望我的每一篇“帖子”都能在一个新页面中打开,并向浏览该网站的人展示3列。第一列包含一系列书签,这些书签被放在视频的不同部分,视频显