替换管理员列表中的标题

时间:2014-07-08 作者:Pipo

以下是我的情况:我正在尝试过滤自定义帖子类型编辑表中标题列的内容,但无法正常工作。

以下是我尝试过的:

add_filter(\'manage_edit-mycpt_columns\', \'replace_title_products\');

function replace_title_products() {
    $oldtitle = get_the_title();
    $newtitle = str_replace(array("<span class=\'sub-title\'>", "</span>"), array("", ""),$oldtitle);
    $title = esc_attr($newtitle);
    return $title;  
}
我只想过滤<span> 我的标题中的标签。谁能帮帮我吗?

3 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

1。更改帖子列表列中的帖子标题显然我误解了你的意思。您可以这样做:

add_action(
    \'admin_head-edit.php\',
    \'wpse152971_edit_post_change_title_in_list\'
);
function wpse152971_edit_post_change_title_in_list() {
    add_filter(
        \'the_title\',
        \'wpse152971_construct_new_title\',
        100,
        2
    );
}

function wpse152971_construct_new_title( $title, $id ) {
    //print_r( $title );
    //print_r( $id );
    return \'new\';
}
利用admin_head-$hook_suffix


(免责声明:保留此信息,因为它是相关的好信息)

2。除不使用和覆盖列表标题外,请替换表列标题。下面是一些关于如何执行此操作的示例代码:

基于manage_{$this->screen->id}_columns

add_filter(
    \'manage_edit-post_columns\',
    \'wpse152971_replace_column_title_method_a\'
);
function wpse152971_replace_column_title_method_a( $columns ) {  
    //print_r($columns);  
    $columns[ \'title\' ] = \'new title\';  
    return $columns;  
}  
基于manage_{$post_type}_posts_columns

add_filter(
    \'manage_post_posts_columns\',
    \'wpse152971_replace_column_title_method_b\'
);
function wpse152971_replace_column_title_method_b( $posts_columns ) {
    //print_r($posts_columns);
    $posts_columns[ \'title\' ] = \'new title\';
    return $posts_columns;
}
最后,但并非最不重要的是,以下代码可以方便地获取所需信息:

add_action( \'admin_head\', \'wpse152619_dbg_dev\' );
function wpse152619_dbg_dev() {
    global $pagenow;
    print_r( $pagenow );
    echo \'<br>\';
    print_r( $_GET[ \'taxonomy\' ] );
    echo \'<br>\';
    $current_screen = get_current_screen();
    print_r( $current_screen->id );
}

SO网友:Matt Royal

几小时前我刚刚做了类似的事情,所以我的代码可能不是最好的,但您需要使用2个挂钩来实现这一点。正如我在代码中看到的那样,您似乎正在使用一个自定义的post类型,这两个钩子是。

manage_post_type_posts_columns()

manage_post_type_posts_custom_column()

我使用了manage_post_type_posts_columns() 筛选挂钩以创建新标题列并取消设置旧标题列,然后manage_post_type_posts_custom_column() 动作挂钩,使用我自己的方法生成此专栏的新内容/标题。

希望这有帮助,也添加了您的代码。。。

// Replace your Title Column with the Existing one //
function replace_title_column($columns) {

    $new = array();

    foreach($columns as $key => $title) {
        if ($key==\'title\') 
        $new[\'new-title\'] = \'New Title\'; // Our New Colomn Name
        $new[$key] = $title;
    }

    unset($new[\'title\']); 
    return $new;
}

// Replace the title with your custom title
function replace_title_products($column_name, $post_ID) {
    if ($column_name == \'new-title\') {
        $oldtitle = get_the_title();
        $newtitle = str_replace(array("<span class=\'sub-title\'>", "</span>"), array("", ""),$oldtitle);
        $title = esc_attr($newtitle); 
        echo $title; 
    }
}

add_filter(\'manage_mycpt_columns\', \'replace_title_column\');
add_action(\'manage_mycpt_custom_column\', \'replace_title_products\', 10, 2);

SO网友:dev

Replace Columns

下面是一个完全替换列的示例,而不是添加和删除特定列

function set_book_columns($columns) {
    return array(
        \'cb\' => \'<input type="checkbox" />\',
        \'title\' => __(\'Title\'),
        \'comments\' => \'<span class="vers comment-grey-bubble" title="\' . esc_attr__( \'Comments\' ) . \'"><span class="screen-reader-text">\' . __( \'Comments\' ) . \'</span></span>\',
        \'date\' => __(\'Date\'),
        \'publisher\' => __(\'Publisher\'),
        \'book_author\' =>__( \'Book Author\')
    );
}
add_filter(\'manage_book_posts_columns\' , \'set_book_columns\');
查看更多信息:manage_$post_type_posts_columns

结束

相关推荐

Pages with 2 Columns

我看过许多可用的插件,但它们似乎都太难使用,或者没有提供足够的灵活性。Plugins I\'ve already tried:<我还研究了一种允许每页边栏的工具,该工具可以工作,但该栏的内容是独立的,因此很难管理,而缺少WYSIWYG编辑器则使那些不熟悉HTML的人很难管理。What I\'m Trying Achieve:我正在从事的项目要求负责输入内容的人员能够将内容添加到主内容的四分之三栏和与主内容相关的信息内容的四分之一栏中。1/4列的内容将根据页面的不同而变化。对于大多数开发人员来说,在帖