函数文档

wp_register_tinymce_scripts()

💡 云策文档标注

概述

wp_register_tinymce_scripts() 函数用于注册 TinyMCE 编辑器相关的脚本,根据压缩和调试设置动态加载不同版本的脚本文件。

关键要点

  • 函数接受两个参数:$scripts(WP_Scripts 对象,必需)和 $force_uncompressed(布尔值,可选,默认 false,用于强制禁用 gzip 压缩)。
  • 根据 $compress_scripts、$concatenate_scripts 和 $force_uncompressed 参数决定加载压缩版(wp-tinymce.js)或未压缩版(tinymce.js 和插件脚本)。
  • 注册的脚本包括 'wp-tinymce'(核心)和 'wp-tinymce-lists'(列表插件),依赖关系自动处理。
  • 函数内部调用 script_concat_settings() 来获取脚本连接和压缩设置,并使用 wp_scripts_get_suffix() 生成脚本后缀。

代码示例

function wp_register_tinymce_scripts( $scripts, $force_uncompressed = false ) {
    global $tinymce_version, $concatenate_scripts, $compress_scripts;

    $suffix     = wp_scripts_get_suffix();
    $dev_suffix = wp_scripts_get_suffix( 'dev' );

    script_concat_settings();

    $compressed = $compress_scripts && $concatenate_scripts && ! $force_uncompressed;

    if ( $compressed ) {
        $scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . 'wp-tinymce.js', array(), $tinymce_version );
    } else {
        $scripts->add( 'wp-tinymce-root', includes_url( 'js/tinymce/' ) . "tinymce$dev_suffix.js", array(), $tinymce_version );
        $scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . "plugins/compat3x/plugin$dev_suffix.js", array( 'wp-tinymce-root' ), $tinymce_version );
    }

    $scripts->add( 'wp-tinymce-lists', includes_url( "js/tinymce/plugins/lists/plugin$suffix.js" ), array( 'wp-tinymce' ), $tinymce_version );
}

注意事项

  • 此函数自 WordPress 5.0.0 版本引入,通常由 wp_default_packages() 调用,开发者一般无需直接使用。
  • 当自定义主题定义了 _WP_Editors::force_uncompressed_tinymce() 时,会强制使用未压缩版本。
  • 相关函数包括 wp_scripts_get_suffix()、includes_url() 和 script_concat_settings(),用于辅助脚本注册。

📄 原文内容

Registers TinyMCE scripts.

Parameters

$scriptsWP_Scriptsrequired
WP_Scripts object.
$force_uncompressedbooloptional
Whether to forcibly prevent gzip compression.

Default:false

Source

function wp_register_tinymce_scripts( $scripts, $force_uncompressed = false ) {
	global $tinymce_version, $concatenate_scripts, $compress_scripts;

	$suffix     = wp_scripts_get_suffix();
	$dev_suffix = wp_scripts_get_suffix( 'dev' );

	script_concat_settings();

	$compressed = $compress_scripts && $concatenate_scripts && ! $force_uncompressed;

	/*
	 * Load tinymce.js when running from /src, otherwise load wp-tinymce.js (in production)
	 * or tinymce.min.js (when SCRIPT_DEBUG is true).
	 */
	if ( $compressed ) {
		$scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . 'wp-tinymce.js', array(), $tinymce_version );
	} else {
		$scripts->add( 'wp-tinymce-root', includes_url( 'js/tinymce/' ) . "tinymce$dev_suffix.js", array(), $tinymce_version );
		$scripts->add( 'wp-tinymce', includes_url( 'js/tinymce/' ) . "plugins/compat3x/plugin$dev_suffix.js", array( 'wp-tinymce-root' ), $tinymce_version );
	}

	$scripts->add( 'wp-tinymce-lists', includes_url( "js/tinymce/plugins/lists/plugin$suffix.js" ), array( 'wp-tinymce' ), $tinymce_version );
}

Changelog

Version Description
5.0.0 Introduced.