如何在 WordPress 上 运行 特定 post_type 中发挥作用?

How to run function in specific post_type on WordPress?

我创建了一个 WordPress 插件并想在标题旁边添加一个短代码,以便它仅出现在特定的 post_type

我的代码:

function haizdesign_add_post_admin_book_column($haizdesign_columns){    
    $haizdesign_columns['haizdesign_book'] = __('book shortcode');
    return $haizdesign_columns;    
}

function haizdesign_show_post_book_column($haizdesign_columns, $haizdesign_id){
echo '<input type="text" width="100%" onclick="jQuery(this).select();" value="[embed_book id=&quot;'.get_the_ID().'&quot;]" />';        
}      
add_filter('manage_posts_columns', 'haizdesign_add_post_admin_book_column', 2);
add_action('manage_posts_custom_column', 'haizdesign_show_post_book_column', 5, 2);

此功能出现在所有类型的帖子中,我希望它只出现在“书籍”类型中

您正在使用的挂钩(manage_posts_columnsmanage_posts_custom_column)将触发所有 post 类型的回调。

您可以使用动态挂钩,其中包括您希望代码应用到的 post 类型的名称。

例如,如果您的 post 类型是 'book',则钩子将是:

add_filter('manage_book_posts_columns', 'haizdesign_add_post_admin_book_column', 2);
add_action('manage_book_posts_custom_column', 'haizdesign_show_post_book_column', 5, 2);

文档: