检查是否启用了TinyMCE按钮的自定义POST类型

时间:2011-03-11 作者:Jared

我正在将TinyMCE按钮添加到我的插件中,它们正在工作,但我只希望这些按钮显示在特定的自定义帖子类型中。如果有帮助,我遵循本教程:

http://www.tutorialchip.com/wordpress/wordpress-shortcode-tinymce-button-tutorial-part-2/

如果他们正在编辑/发布自定义帖子类型的帖子,我如何进行检查,newpages?

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

如果遵循链接的教程,请查看注册按钮的函数:

function mylink_button() {
   if ( ! current_user_can(\'edit_posts\') && ! current_user_can(\'edit_pages\'){
     return;
   }
   if ( get_user_option(\'rich_editing\') == \'true\' ) {
     add_filter( \'mce_external_plugins\', \'add_plugin\' );
     add_filter( \'mce_buttons\', \'register_button\' );
   }
}
您可以稍微更改它以检查帖子类型:

function mylink_button() {
        if ( ! current_user_can(\'edit_posts\') && ! current_user_can(\'edit_pages\')){
         return;
        }
        if ( get_user_option(\'rich_editing\') == \'true\' ) {
            global $typenow;
            if (empty($typenow) && !empty($_GET[\'post\'])) {
                $post = get_post($_GET[\'post\']);
                $typenow = $post->post_type;
            }
            if ("newpages" == $typenow){
                add_filter( \'mce_external_plugins\', \'add_plugin\' );
                add_filter( \'mce_buttons\', \'register_button\' );
            }
       }
    }
这样,您只需注册“newpages”类型上的按钮

SO网友:Beat Sprenger

谢谢你,班纳特。非常有用。我对你的解决方案做了一点小小的修改。

而不是

global $typenow;
我拿走了

global $current_screen;
$current_screen->post_type;
$typenow仅在插入新帖子时返回正确的类型。编辑现有帖子时,它总是返回“post”。所以最好使用$current\\u screen->post\\u type。

结束

相关推荐