Добавление пользовательских столбцов со значением последнего пользователя, который изменил страницу, в панель администратора WordPress, Управление страницами

#php #mysql #wordpress

Вопрос:

введите описание изображения здесь

Я хочу иметь два пользовательских столбца в табличном представлении страниц в WordPress. Я мог бы сделать это для «Последнего изменения» с помощью встроенных функций и приведенных ниже кодов:

 add_filter('manage_pages_columns','add_custom_page_columns');
function add_custom_page_columns( $columns ) {
    $columns['last_modified'] = 'Last modified';
    $columns['modified_author'] = 'Modified by';
    return $columns;
}

add_action( 'manage_pages_custom_column','custom_columns_content', 10, 2 );
function custom_columns_content ( $column_id, $post_id ) {
    switch( $column_id ) { 
        case 'last_modified':
            echo get_post_field('post_modified', $post_id);
        break;
        
        case 'modified_author':
            echo get_post_meta($post_id, "meta_value", false);
        break;
   }
}

 

«Последнее изменение» работает хорошо, однако я не смог показать, кто был последним модификатором.

Я нашел в таблице «wp_postmeta» > столбец «meta_key» > > _edit_last >>>

там

«post_id» показывает идентификатор страницы

«meta_value» показывает идентификатор пользователя последнего модификатора

Для сортировки столбца «Последнее изменение».

 add_filter( 'manage_edit-page_sortable_columns', 'sortable_page_columns' );
function sortable_page_columns( $columns ) {
    $columns['last_modified'] = 'Last modified';
    return $columns;
}
 

Чтобы использовать эти коды, добавьте их все в function.php

Ответ №1:

Попробуйте вместо этого вот это.

 add_filter('manage_pages_columns','bks_add_custom_page_columns');
function bks_add_custom_page_columns( $columns ) {
    $columns['last_modified'] = 'Last modified';
    $columns['modified_author'] = 'Modified by';
    return $columns;
}

add_action( 'manage_pages_custom_column','bks_custom_columns_content', 10, 2 );
function bks_custom_columns_content ( $column_id, $post_id ) {
    switch( $column_id ) {
        case 'last_modified':
            echo get_post_field('post_modified', $post_id);
            break;

        case 'modified_author':
            echo the_modified_author(); // Changed.
            break;
    }
}
 

Я использовал the_modified_author() функцию.

функция the_modified_author() Отображает имя автора, который в последний раз редактировал текущую запись, если доступен идентификатор автора.

Комментарии:

1. Именно «the_modified_author()» был моим ответом. Спасибо

2. @alifallahi, Отлично, подумайте о том, чтобы отметить это как правильный ответ. Спасибо!!