WordPress自定义列内容

时间:2020-04-14 13:53:59

标签: php wordpress

我有一个针对视频的自定义帖子类型。在管理员编辑屏幕上,我添加了一个名为Description的自定义列以显示自定义字段的值。

Screnshoot of Current Post List Columns

我实际上想在“职位标题链接”和“快速操作链接”下方的“标题”列中显示“描述”值。但是,我似乎无法像我期望的那样与“标题”列进行交互。我可以重新排列“标题”列,但不能在其中打印内容。

// 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 :(得分:0)

我找到了另一种方法,可以实现我的目标。

我没有使用默认的列名称“ 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 );
相关问题