如何在仅创建特定的自定义帖子类型时控制管理员的CSS

时间:2018-01-16 作者:Mona Coder

我有一个自定义的帖子类型,叫做SlidersCPT 当我注册CPT时

register_post_type( \'SlidersCPT\', $args );
我需要在管理页面上应用一些CSS规则only 创建新的SlidersCPT自定义帖子类型时。我想这可能会有帮助:

if(get_post_type() == \'SlidersCPT\') {}
但正如您所看到的,它只是控制Custopm Post类型的页面,而不是管理区域。

我想做的是控制页面的css,如果它在创建自定义帖子类型的管理页面中

function hide_editor() { 
 if(get_post_type() == \'SlidersCPT\') { ?>
     <style>
       #insert-media-button {  display: none !important; }
    </style>
  <?php
  }
 }

2 个回复
SO网友:apavliukov

您可以使用以下代码:

add_action( \'admin_enqueue_scripts\', \'load_admin_style\' );
function load_admin_style() {
    global $pagenow;

    if ( \'post.php\' === $pagenow && isset($_GET[\'post\']) && \'YOURPOSTTYPE\' === get_post_type( $_GET[\'post\'] ) ) {
        wp_enqueue_style( \'admin_css\', get_template_directory_uri() . \'/admin-style.css\', false, \'1.0.0\' );
    }
}

SO网友:Max Yudin

admin Add屏幕的URL如下所示:

https://example.com/wp-admin/post-new.php?post_type=SlidersCPT
因此,请检查查询字符串(superglobal$_GET) 对于尝试添加的帖子类型:

<?php
function hide_editor() { 
    if( isset( $_GET[\'post_type\'] ) && \'SlidersCPT\' == $_GET[\'post_type\'] ) {
?>
    <style>
    #insert-media-button {  display: none !important; }
    </style>
<?php
    }
}
?>

More:

由于CSS在任何现代浏览器中都很容易调整,因此您可以完全删除添加媒体按钮,而不是隐藏,例如对于具有作者功能和更低版本的用户:

<?php
function remove_add_media_button(){
    // Check if user is not Author, but Editor or higher
    if( !current_user_can( \'manage_categories\' ) ) {
        remove_action( \'media_buttons\', \'media_buttons\' );
    }
}

if( isset( $_GET[\'post_type\'] ) && \'SlidersCPT\' == $_GET[\'post_type\'] ) {
    add_action(\'admin_head\', \'remove_add_media_button\');
}

结束

相关推荐