관리 목록 테이블에서 제목 바꾸기


10

내 상황은 다음과 같습니다. 사용자 정의 게시물 유형 편집 테이블에서 제목 열의 내용을 필터링하려고하는데 작동하지 않습니다.

내가 시도한 것은 다음과 같습니다.

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>제목 에서 태그 를 필터링하고 싶습니다 . 누군가 나를 도와 줄 수 있습니까?

답변:


19

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. 테이블 열 제목을 바꿉니다.

게다가 열 테이블 제목을 사용하고 덮어 쓰지 않습니다. 방법에 대한 예제 코드는 다음과 같습니다.

  1. 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;  
    }  
    
  2. 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 );
}

죄송합니다. 내 코드에서 리턴 라인을 잊어 버렸습니다 ... 답변 주셔서 감사하지만 이것이 달성하려는 것이 아닙니다. 제목의 열 이름을 변경하고 싶지 않고 각 게시물에 대해이 열에 반환되는 내용을 변경하고 싶습니다. 현재는 다음과 같습니다. "첫 번째 행에 대한 내 제목 <span class ="sub-title "> 숫자 1 </ span>", "이 내 제목 <span class ="sub-title "> 숫자 2 </ span> "두 번째 행 등을 위해.
Pipo

대박!! 바로 내가하고 싶은 일입니다. 고마워요!
Pipo

시도한 해결 방법 1 1. Change post title in post list column값은 변경 사항이며 레이블의 이름을 바꾸는 방법도 있습니다. ?
개발자

@ 개발자 당신은 테이블 열 제목을 의미합니까? 아래에 설명 된 것처럼.
Nicolai

1
나는 똑같은 일을하려고했지만 사용자 정의 TAXONOMY 테이블 헤더 (10 이상이 있으므로 단축해야 함). 'labels'배열의 관리 열 'menu_name'에 대한 축약 형을 줄 수 있지만 이상하게도 테이블 헤드에는 영향을 미치지 않습니다. 나는 많은 것을 검색 했고이 기사는 계속 나아 갔고 분류학은 없었습니다 ... SO : Method 2.1 = A를 사용하면 Method 2.2 = B 만하면됩니다 ( 'taxonomy- {my_tax_name}'열) print_r에서 알 수 있듯이 '제목'과 '날짜'및 자체 삽입 열을 가져옵니다.
user3445853

1

방금 몇 시간 전에 비슷한 작업을 수행 했으므로 코드가 최선이 아닐 수도 있지만이를 달성하려면 2 개의 후크를 사용해야합니다. 코드에서 본 사용자 정의 게시물 유형을 사용하고있는 것처럼이 두 가지 고리가 있습니다.

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);

고마워 매트. 내용이 반환되기 전에 원래 "제목"열을 필터링하는 방법이 있는지 알고 있습니까? 원래 제목에는 많은 기능 (편집, 빠른 편집, 휴지통 등)이 제공되므로 새 제목 열을 만들고 싶지 않습니다.
Pipo

@Etienne 나는 두렵지 않다. 어쩌면 다른 누군가가 우리 에게이 작업을 수행하는 방법에 대한 아이디어를 줄 수도 있습니다. 또한 알고 싶습니다 :-)
Matt Royal

수정 된 답변을 참조하십시오. 새 열을 만들 필요가 없습니다. @Etienne
Nicolai

0

열 바꾸기

다음은 특정 열을 추가 및 제거하지 않고 열을 완전히 대체하는 예입니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.