替换帖子类型的列表表格

时间:2014-01-16 作者:Manny Fleurmond

是否有方法替换帖子类型的WP\\u List\\u Table对象,以便在管理编辑中以不同方式显示所述帖子类型。php页面?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

否,不能替换列表。没有过滤器,一切都是硬编码的。

但您可以更改帖子类型注册,设置show_uiFALSE 阻止内置页面,并为帖子类型列表添加自定义页面以显示可编辑的项目。

add_action( \'wp_loaded\', function(){
    register_post_type(
        \'test\',
        array(
            \'labels\' => array(
                \'name\' => \'TEST\'
            ),
            \'public\' => TRUE,
            \'show_ui\' => FALSE
        )
    );
});

add_action( \'admin_menu\', function(){
    add_object_page(
        \'TEST\',
        \'TEST\',
        \'edit_test\',
        \'test\',
        function(){
            echo \'test\'; // list post type items here
        }
    );
});
结果

screen shot

SO网友:Ari

此示例应用于post 岗位类型。这是利用WP_Posts_List_Table 类别和views-edit-{$post_type} 滤器这似乎不是最好的方法,但它很有效:

Make sure the class is loaded on your page:

if(!class_exists(\'WP_List_Table\')){
    require_once( ABSPATH . \'wp-admin/includes/class-wp-list-table.php\' );
}
if(!class_exists(\'WP_Posts_List_Table\')){
    require_once( ABSPATH . \'wp-admin/includes/class-wp-posts-list-table.php\' );
}

Extend the WP_Posts_List_Table class to remove list table and define the custom content:

class wpse_CustomTable extends WP_Posts_List_Table
{       
    // remove search box
    public function search_box( $text, $input_id ){ }

    // Your custom list table is here
    public function display() {
        echo "Test";
    }
}

Use it inside a filter hook:

// hook into `views-edit`
add_filter( \'views_edit-post\',  "sstssfb_custom_list_table");    
// Override the post table object
function sstssfb_custom_list_table() {
    global $wp_list_table;
    $mylisttable = new wpse_CustomTable();
    $wp_list_table = $mylisttable ;    
}

Result:

enter image description here

结束

相关推荐

WordPress在子目录wp-admin中出现问题

我在网站的子目录中安装了WordPress 3.3.1,用作临时测试站点。似乎是根站点.htaccess 正在为Wordpress wp管理页创建问题。我已经设置了WordPress Address (URL) 和Site Address (URL) 正确指向子目录url。如果我没有.htaccess 在我的子目录内(wp root)=wp admin(登录页)工作。如果我添加.htaccess 如下图所示,该页面可以正常工作,如果您登录到wp admin,则可以正常工作BUT 每次尝试保存内容时=空白页