【发布时间】:2022-02-18 19:21:17
【问题描述】:
我的 WordPress 网站中有一个自定义帖子类型(产品)。
这是 WooCommerce 产品,如果有必要知道的话。
我需要在添加产品页面上将工具栏 (1) 隐藏到 wp-editor 中。 我还需要隐藏“添加媒体”按钮 (2) 和“视觉/文本”选项卡 (3)。
如何隐藏它们?
使用一些钩子将这个 WordPress 编辑器更改为具有相同“名称”属性值的文本区域可能有意义吗?
【问题讨论】:
我的 WordPress 网站中有一个自定义帖子类型(产品)。
这是 WooCommerce 产品,如果有必要知道的话。
我需要在添加产品页面上将工具栏 (1) 隐藏到 wp-editor 中。 我还需要隐藏“添加媒体”按钮 (2) 和“视觉/文本”选项卡 (3)。
如何隐藏它们?
使用一些钩子将这个 WordPress 编辑器更改为具有相同“名称”属性值的文本区域可能有意义吗?
【问题讨论】:
您可以使用function.php或插件来管理此代码。您需要放置一个动作。
移除媒体按钮:
function z_remove_media_controls() {
remove_action( 'media_buttons', 'media_buttons' );
}
add_action('admin_head','z_remove_media_controls');
移除视觉标签
add_filter( 'admin_footer', 'custom_edit_page_js', 99);
function custom_edit_page_js(){
echo ' <style type="text/css">
a#content-tmce, a#content-tmce:hover, #qt_content_fullscreen{
display:none;
}
</style>';
echo ' <script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#content-tmce").attr("onclick", null);
});
</script>';
}
您可以识别帖子类型是,
if( get_post_type() == 'product' && is_admin()) {
//do some stuff
}
【讨论】:
Text/Visual 选项卡内容:.wp-editor-tabs { display:none;}。 (问题图像中的第三点)。
add_filter( 'wp_default_editor', array($this, 'default_editor') ); 也可以完成这项工作
我找到了这个解决方案:
function hide_toolbar_TinyMCE( $in ) {
$in['toolbar1'] = '';
$in['toolbar2'] = '';
$in['toolbar'] = false;
return $in;
}
add_filter( 'tiny_mce_before_init', 'hide_toolbar_TinyMCE' );
但它到处隐藏工具栏,因为这是“过滤器”而不是“动作”。 如何仅在产品(自定义帖子类型)添加/编辑页面上隐藏它?
【讨论】:
我发现here这个优雅的解决方案:
function wpse_199918_wp_editor_settings( $settings, $editor_id ) {
if ( $editor_id === 'content' && get_current_screen()->post_type === 'custom_post_type' ) {
$settings['tinymce'] = false;
$settings['quicktags'] = false;
$settings['media_buttons'] = false;
}
return $settings;
}
add_filter( 'wp_editor_settings', 'wpse_199918_wp_editor_settings', 10, 2 );
【讨论】: