Пользовательский Контент WordPress - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть собственный тип записи для видео. На экране редактирования администратора я добавил настраиваемый столбец с именем Description для отображения значения настраиваемого поля.

Снимок столбцов списка текущих публикаций

На самом деле я хотел бы отобразить значение Description в столбце Title под «ссылкой на заголовок публикации» и «быстрым действием». ссылки». Однако я не могу взаимодействовать с колонками заголовка, как я ожидал. Я могу изменить порядок столбцов заголовка, но не могу распечатать содержимое в нем.

// Add Custom Columns to Videos list 
function modify_videos_columns($columns){

    unset($columns['date']);
    unset($columns['author']);
    unset($columns['title']);

    $columns['thumbnail'] = __('Thumbnail');
    $columns['title'] = __('Title');
    $columns['description'] = __('Description');
    $columns['datetime'] = __('Date & Time');
    return $columns;
}
add_filter('manage_video_posts_columns', 'modify_videos_columns', 5);

function display_video_custom_columns($column_name, $post_id){
  switch($column_name){

    case "thumbnail":
        print "<a href='" . get_edit_post_link($post_id) . "'><img src='" . get_post_meta($post_id, "video_thumbnail_medium", true) . "' width='150px' /></a>";

    break; 
    case "title":
        print "<p>" . get_field("video_description", $post_id) . "</p>";
    break;  
    case "description":
        print get_field("video_description", $post_id);
    break;
    case 'datetime':
        print date_format(date_create(get_field("video_datetime")), "d/m/y") . ", " . date_format(date_create(get_field("video_datetime")), "g:ia");
        break;
  }
}
add_action('manage_video_posts_custom_column', 'display_video_custom_columns', 5, 2);

Может кто-нибудь помочь мне понять, что я делаю неправильно?

1 Ответ

0 голосов
/ 16 апреля 2020

Я нашел другой подход, который достиг того, к чему я стремился.

Вместо того, чтобы использовать имя столбца по умолчанию «title» (что, кажется, вызывает неожиданное поведение), я создаю столбец с именем «custom_title» "и заполнил его заголовком и описанием.

Затем я использовал фильтр" list_table_primary_column ", чтобы установить столбцы" cstom_title "в качестве столбца по умолчанию, который добавляет ссылки быстрого редактирования в каждую запись в столбце.

// Add Custom Columns to Videos list 
function modify_videos_columns($columns){

    unset($columns['date']);
    unset($columns['author']);
    unset($columns['title']);

    $columns['thumbnail'] = __('Thumbnail');
    $columns['custom_title'] = __('Title');
    $columns['datetime'] = __('Date & Time');
    return $columns;
}
add_filter('manage_video_posts_columns', 'modify_videos_columns', 5);

function display_video_custom_columns($column_name, $post_id){
  switch($column_name){

    case "thumbnail":
        print "<a href='" . get_edit_post_link($post_id) . "'><img src='" . get_post_meta($post_id, "video_thumbnail_medium", true) . "' width='150px' /></a>";

    break; 
    case "custom_title":
        print "<strong><a href='" . get_edit_post_link($post_id) . "'>" . get_the_title($post_id) . "</a></strong>";
        print "<p>" . get_field("video_description", $post_id) . "</p>";
    break;  
    case 'datetime':
        print date_format(date_create(get_field("video_datetime")), "d/m/y") . ", " . date_format(date_create(get_field("video_datetime")), "g:ia");
        break;
  }
}
add_action('manage_video_posts_custom_column', 'display_video_custom_columns', 5, 2);

function list_table_primary_column( $default, $screen ) {
    if ( 'edit-video' === $screen ) {
        $default = 'custom_title'; // Set default column
    }
    return $default;
}
add_filter( 'list_table_primary_column', 'list_table_primary_column', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...