我有一个针对视频的自定义帖子类型。在管理员编辑屏幕上,我添加了一个名为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);
任何人都可以帮助我了解我在做什么错吗?
答案 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 );