WordPress 后台所有页面的列表中所显示的列都是固定的,如果想要自定义一些列,如增加一列文章的修改时间等,则需要用到 manage_pages_custom_column 钩子了,这就是本文的重点内容。
manage_pages_custom_column 钩子的介绍
在页面列表中的每个自定义列中触发。
do_action( 'manage_pages_custom_column', string $column_name, int $post_id )
仅当当前帖子类型为 page 页面时,才会触发此挂钩。
参数:
- $column_name:(string)要显示的列的名称。
- $post_id:(int) 当前帖子 ID。
钩子所在文件:wp-admin/includes/class-wp-posts-list-table.php
manage_pages_custom_column 钩子的使用示例
示例:将“模板”列添加到页面列表
add_filter( 'manage_pages_columns', 'page_column_views' );
add_action( 'manage_pages_custom_column', 'page_custom_column_views', 5, 2 );
function page_column_views( $defaults )
{
$defaults['page-layout'] = __('Template', 'textdomain');
return $defaults;
}
function page_custom_column_views( $column_name, $id )
{
if ( $column_name === 'page-layout' ) {
$set_template = get_post_meta( get_the_ID(), '_wp_page_template', true );
if ( $set_template == 'default' ) {
echo __('Default Template', 'textdomain');
}
$templates = get_page_templates();
ksort( $templates );
foreach ( array_keys( $templates ) as $template ) :
if ( $set_template == $templates[$template] ) echo $template;
endforeach;
}
}
以上内容整理自@WordPress – manage_pages_custom_column
示例:在所有页面列表中增加一列修改时间,详见『如何为 WordPress 后台所有页面列表添加一列修改时间?』。