我正在尝试删除我所有CPTs帖子概览页面中的标题和日期,而是显示一幅特色图片。我有下面的代码,但我不知道它是否是正确的方法,以及如何使它只在我的CPT上工作,而不是在所有的帖子上工作
//Remove title and date columns in CPT overview and instead show just thumbnail
function jam_cpt_columns($columns) {
unset(
$columns[\'title\'],
$columns[\'date\']
);
$new_columns = array(
\'featured_thumb\' => \'Thumbnail\',
);
return array_merge($columns, $new_columns);
}
add_filter(\'jam_manage_posts_custom_column\' , \'jam_cpt_columns\');
function jam_cpt_columns_data( $column, $post_id ) {
switch ( $column ) {
case \'featured_thumb\':
echo \'<a href="\' . get_edit_post_link() . \'">\';
echo the_post_thumbnail( \'thumbnail\' );
echo \'</a>\';
break;
}
}
if ( function_exists( \'add_theme_support\' ) ) {
add_filter( \'manage_posts_columns\' , \'jam_cpt_columns\' );
add_action( \'manage_posts_custom_column\' , \'jam_cpt_columns_data\', 10, 2 );
add_filter( \'manage_pages_columns\' , \'jam_cpt_columns\' );
add_action( \'manage_pages_custom_column\' , \'jam_cpt_columns_data\', 10, 2 );
}
最合适的回答,由SO网友:pouria 整理而成
看起来很有效。post类型slug作为GET变量传递,因此如果要将代码添加到特定的post类型,可以首先通过以下方式获取post类型slug:
if( isset($_GET[\'post_type\']) ) {
$post_type = $_GET[\'post_type\'];
if( in_array( $post_type, array(\'type1\', \'type2\', ...) ) ) {
add_filter( \'manage_posts_columns\' , \'jam_cpt_columns\' );
add_action( \'manage_posts_custom_column\' , \'jam_cpt_columns_data\', 10, 2 );
add_filter( \'manage_pages_columns\' , \'jam_cpt_columns\' );
add_action( \'manage_pages_custom_column\' , \'jam_cpt_columns_data\', 10, 2 );
}
}
可以在数组中指定所需的帖子类型。