{"id":2862,"date":"2025-06-11T08:07:57","date_gmt":"2025-06-11T00:07:57","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/wpcms\/wpdt\/2862.html"},"modified":"2025-06-11T08:07:57","modified_gmt":"2025-06-11T00:07:57","slug":"%e5%a6%82%e4%bd%95%e5%88%9b%e5%bb%ba%e4%b8%80%e4%b8%aa-wordpress-tinymce-%e6%8f%92%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/www.zhaozhao123.cn\/wpcms\/post\/2862.html","title":{"rendered":"\u5982\u4f55\u521b\u5efa\u4e00\u4e2a WordPress TinyMCE \u63d2\u4ef6"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<p class=\"my-0\">Bug&#32534;&#35793;&#29422;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#21019;&#24314;&#19968;&#20010; WordPress TinyMCE &#25554;&#20214;&#65292;&#39318;&#20808;&#25105;&#20204;&#38656;&#35201;&#20102;&#35299;&#19968;&#20123;&#22522;&#30784;&#30693;&#35782;&#21644;&#24037;&#20855;&#12290;TinyMCE &#26159;&#19968;&#20010;&#38750;&#24120;&#24378;&#22823;&#30340; HTML &#25193;&#23637;&#32534;&#36753;&#22120;&#65292;&#21487;&#20197;&#29992;&#20110;&#22686;&#24378; WordPress &#30340;&#25991;&#26412;&#32534;&#36753;&#21151;&#33021;&#12290;<\/p>\n<h3>&#27493;&#39588; 1: &#35774;&#32622;&#24320;&#21457;&#29615;&#22659;<\/h3>\n<p>&#30830;&#20445;&#20320;&#30340;&#26412;&#22320;&#30005;&#33041;&#19978;&#23433;&#35013;&#20102; Node.js &#21644; npm&#65288;Node Package Manager&#65289;&#12290;&#36825;&#20123;&#24037;&#20855;&#21487;&#20197;&#24110;&#21161;&#25105;&#20204;&#31649;&#29702;&#20381;&#36182;&#39033;&#21644;&#26500;&#24314;&#39033;&#30446;&#12290;<\/p>\n<h3>&#27493;&#39588; 2: &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; React &#24212;&#29992;&#31243;&#24207;<\/h3>\n<p>&#20351;&#29992; <code>create-react-app<\/code> &#26469;&#24555;&#36895;&#25645;&#24314;&#19968;&#20010; React &#24212;&#29992;&#31243;&#24207;&#65306;<\/p>\n<pre><code class=\"language-bash\">npx create-react-app tiny-mce-plugin\ncd tiny-mce-plugin<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#22312; <code>package.json<\/code> &#20013;&#28155;&#21152;&#24517;&#35201;&#30340;&#37197;&#32622;&#26469;&#25903;&#25345; TinyMCE&#65306;<\/p>\n<pre><code class=\"language-json\">{\n  \"dependencies\": {\n    \"@tinymce\/tinymce-react\": \"^5.6.0\"\n  }\n}<\/code><\/pre>\n<h3>&#27493;&#39588; 3: &#37197;&#32622; TinyMCE<\/h3>\n<p>&#36827;&#20837; <code>src<\/code> &#30446;&#24405;&#24182;&#25171;&#24320; <code>index.html<\/code> &#25991;&#20214;&#65292;&#25214;&#21040; <code>&lt;script&gt;<\/code> &#26631;&#31614;&#20013;&#30340; TinyMCE &#21021;&#22987;&#21270;&#20195;&#30721;&#12290;&#20320;&#38656;&#35201;&#23558;&#20854;&#26367;&#25442;&#20026;&#25105;&#20204;&#30340; React &#32452;&#20214;&#12290;<\/p>\n<pre><code class=\"language-html\">&lt;script src=\"https:\/\/cdn.tiny.cloud\/1\/no-api-key\/tinymce\/icloud\/tinymce.min.js\" referrerpolicy=\"origin\"&gt;&lt;\/script&gt;\n&lt;script type=\"text\/javascript\"&gt;\n  tinymce.init({\n    selector: 'textarea',\n    plugins: [\n      'advlist autolink lists link image charmap print preview anchor',\n      'searchreplace visualblocks code fullscreen',\n      'insertdatetime media table contextmenu paste'\n    ],\n    toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help',\n    content_css: '\/\/fonts.googleapis.com\/css?family=Open+Sans:400,700|Abel'\n  });\n&lt;\/script&gt;<\/code><\/pre>\n<h3>&#27493;&#39588; 4: &#21019;&#24314; React &#32452;&#20214;<\/h3>\n<p>&#22312; <code>src\/components<\/code> &#25991;&#20214;&#22841;&#19979;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#65292;&#20363;&#22914; <code>Editor.js<\/code>&#65292;&#24182;&#32534;&#20889;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport { Editor } from '@tinymce\/tinymce-react';\n\nconst EditorComponent = () =&gt; (\n  &lt;div style={{ width: '80%', margin: 'auto' }}&gt;\n    &lt;Editor \/&gt;\n  &lt;\/div&gt;\n);\n\nexport default EditorComponent;<\/code><\/pre>\n<h3>&#27493;&#39588; 5: &#20351;&#29992;&#32452;&#20214;<\/h3>\n<p>&#22238;&#21040;&#20027;&#24212;&#29992;&#25991;&#20214; <code>App.js<\/code>&#65292;&#23548;&#20837;&#24182;&#20351;&#29992;&#26032;&#21019;&#24314;&#30340;&#32452;&#20214;&#65306;<\/p>\n<pre><code class=\"language-jsx\">import React from 'react';\nimport EditorComponent from '.\/components\/Editor';\n\nfunction App() {\n  return (\n    &lt;div className=\"App\"&gt;\n      &lt;h1&gt;Hello, world!&lt;\/h1&gt;\n      &lt;EditorComponent \/&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<h3>&#27493;&#39588; 6: &#36816;&#34892;&#24212;&#29992;&#31243;&#24207;<\/h3>\n<p>&#29616;&#22312;&#20320;&#21487;&#20197;&#36890;&#36807;&#36816;&#34892;&#21629;&#20196;&#21551;&#21160;&#20320;&#30340; React &#24212;&#29992;&#31243;&#24207;&#65306;<\/p>\n<pre><code class=\"language-bash\">npm start<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;&#19982;&#25928;&#26524;<\/h3>\n<p>&#24403;&#20320;&#35775;&#38382; <code>http:\/\/localhost:3000<\/code> &#26102;&#65292;&#20320;&#24212;&#35813;&#33021;&#30475;&#21040;&#19968;&#20010;&#31616;&#21333;&#30340; TinyMCE &#32534;&#36753;&#22120;&#12290;&#36825;&#20010;&#20363;&#23376;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312;&#19968;&#20010;&#22522;&#26412;&#30340; React &#24212;&#29992;&#20013;&#38598;&#25104; TinyMCE &#25554;&#20214;&#65292;&#20197;&#25552;&#20379;&#26356;&#20016;&#23500;&#30340;&#25991;&#26412;&#32534;&#36753;&#20307;&#39564;&#12290;<\/p>\n<p>&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#20320;&#21487;&#20197;&#22312; WordPress &#32593;&#31449;&#19978;&#36731;&#26494;&#22320;&#28155;&#21152;&#33258;&#23450;&#20041;&#25554;&#20214;&#65292;&#22914; TinyMCE&#65292;&#20174;&#32780;&#22686;&#24378;&#29992;&#25143;&#30340;&#21019;&#20316;&#20307;&#39564;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;&#21069;&#30340;Bug&#35821;&#27861;&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<p class=\"my-0\">&#40657;&#26495;&#21069;&#30340;Bug&#35821;&#27861;&#35762;&#24072;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<ol>\n<li><strong>&#20160;&#20040;&#26159;TinyMCE?<\/strong> TinyMCE &#26159;&#19968;&#31181;&#24378;&#22823;&#30340;&#23500;&#25991;&#26412;&#32534;&#36753;&#22120;&#25554;&#20214;&#65292;&#21487;&#20197;&#20026; WordPress &#25552;&#20379;&#20016;&#23500;&#30340;&#32534;&#36753;&#21151;&#33021;&#12290;&#23427;&#21487;&#20197;&#24110;&#21161;&#29992;&#25143;&#26356;&#36731;&#26494;&#22320;&#32534;&#20889;&#21644;&#31649;&#29702;&#32593;&#39029;&#19978;&#30340;&#25991;&#23383;&#20869;&#23481;&#12290;<\/li>\n<li><strong>&#22914;&#20309;&#23433;&#35013;&#21644;&#37197;&#32622;TinyMCE&#25554;&#20214;?<\/strong> &#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#36890;&#36807; WordPress &#25511;&#21046;&#38754;&#26495;&#26469;&#19979;&#36733;&#24182;&#23433;&#35013; TinyMCE &#25554;&#20214;&#12290;&#28982;&#21518;&#65292;&#22312;&#20320;&#30340;&#20027;&#39064;&#25110;&#27169;&#26495;&#25991;&#20214;&#20013;&#28155;&#21152; TinyMCE &#30340; CSS &#21644; JavaScript &#25991;&#20214;&#12290;&#26368;&#21518;&#65292;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#33258;&#23450;&#20041; TinyMCE &#30340;&#35774;&#32622;&#65292;&#22914;&#36873;&#25321;&#39044;&#35774;&#12289;&#23383;&#20307;&#12289;&#39068;&#33394;&#31561;&#12290;<\/li>\n<li><strong>&#22914;&#20309;&#20351;&#29992;TinyMCE&#25554;&#20837;&#22270;&#29255;?<\/strong> &#20026;&#20102;&#22312; HTML &#20013;&#25554;&#20837;&#22270;&#29255;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; TinyMCE &#30340;&#20869;&#32622; <img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\"> &#26631;&#31614;&#25110;&#32773;&#20351;&#29992;&#33258;&#23450;&#20041;&#30340; <img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\"> &#26631;&#31614;&#12290;&#20363;&#22914;&#65306;\n\n&#8220;`html\n\n&#8220;`\n\n&#25110;&#32773;\n\n&#8220;`html\n\n&#8220;`\n&#20854;&#20013; `get_template_directory_uri()` &#20989;&#25968;&#29992;&#20110;&#33719;&#21462;&#24403;&#21069;&#20027;&#39064;&#30340;&#26681;&#30446;&#24405;&#36335;&#24452;&#12290;<\/li>\n<\/ol>\n<h3>&#31034;&#20363;&#20195;&#30721;&#65306;<\/h3>\n<ol>\n<li><strong>&#20351;&#29992; TinyMCE &#25554;&#20214;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-php\">add_action( 'admin_enqueue_scripts', function() {\n    wp_enqueue_style('tiny_mce');\n} );<\/code><\/pre>\n<ol start=\"2\">\n<li><strong>&#20351;&#29992; TinyMCE &#33258;&#23450;&#20041;&#26679;&#24335;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-php\">function my_custom_tiny_mce_styles() {\n    wp_enqueue_style( 'my-custom-tinymce-style' , get_stylesheet_directory_uri() . '\/css\/custom.css' );\n}\nadd_action( 'admin_head', 'my_custom_tiny_mce_styles' );<\/code><\/pre>\n<ol start=\"3\">\n<li><strong>&#20351;&#29992; TinyMCE &#33258;&#23450;&#20041;&#25554;&#20214;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-php\">function my_custom_tiny_mce_plugin_actions() {\n    add_action( 'mce_before_init', 'my_custom_tiny_mce_plugin_action' );\n}\nfunction my_custom_tiny_mce_plugin_action() {\n    \/\/ &#22312;&#36825;&#37324;&#28155;&#21152;&#33258;&#23450;&#20041;&#34892;&#20026;\n}<\/code><\/pre>\n<ol start=\"4\">\n<li><strong>&#20351;&#29992; TinyMCE &#33258;&#23450;&#20041;&#24555;&#25463;&#38190;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">tinymce.init({\n    selector: 'textarea',\n    plugins: [\n        'advlist autolink link image lists charmap print preview hr anchor pagebreak',\n        'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking',\n        'save table contextmenu directionality emoticons template paste textcolor colorpicker textpattern imagetools'\n    ],\n    toolbar1: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',\n    toolbar2: 'print preview media fullpage | forecolor backcolor emoticons'\n});<\/code><\/pre>\n<ol start=\"5\">\n<li><strong>&#20351;&#29992; TinyMCE &#33258;&#23450;&#20041;&#36873;&#39033;&#21345;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">tinymce.init({\n    theme: \"modern\",\n    language: \"zh-CN\",\n    plugins: [\n        \"advlist autolink link image lists charmap print preview hr anchor pagebreak\",\n        \"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking\",\n        \"save table contextmenu directionality emoticons template paste textcolor colorpicker textpattern imagetools\"\n    ],\n    content_css: [\"css\/content.css\"],\n    toolbar: \"bold italic | fontselect fontsizeselect | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image\",\n    branding: false,\n    menubar: false,\n    statusbar: true,\n    height: 500,\n    relative_urls: false,\n    remove_script_host: true,\n    width: 800\n});<\/code><\/pre>\n<ol start=\"6\">\n<li><strong>&#20351;&#29992; TinyMCE &#33258;&#23450;&#20041;&#33258;&#23450;&#20041;&#23646;&#24615;<\/strong><\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">tinymce.init({\n    selector: 'textarea',\n    plugins: [\n        'advlist autolink link image lists charmap print preview hr anchor pagebreak',\n        'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking',\n        'save table contextmenu directionality emoticons template paste textcolor colorpicker textpattern imagetools'\n    ],\n    toolbar1: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',\n    toolbar2: 'print preview media fullpage | forecolor backcolor emoticons',\n    content_css: [\"css\/content.css\"],\n    toolbar_items: ['styleselect'],\n    branding: false,\n    menubar: false,\n    statusbar: true,\n    height: 500,\n    relative_urls: false,\n    remove_script_host: true,\n    width: 800,\n    custom_props: {\n        'contenteditable': true,\n        'data-toggle': 'collapse',\n        'data-target': '#collapseExample',\n        'aria-expanded': 'true',\n        'aria-controls': 'collapseExample'\n    }\n});<\/code><\/pre>\n<p>&#36825;&#20123;&#20363;&#23376;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; WordPress &#20013;&#20351;&#29992; TinyMCE &#25554;&#20214;&#30340;&#22522;&#26412;&#27493;&#39588;&#20197;&#21450;&#22914;&#20309;&#33258;&#23450;&#20041;&#20854;&#22806;&#35266;&#21644;&#21151;&#33021;&#12290;&#27599;&#20010;&#31034;&#20363;&#37117;&#25552;&#20379;&#20102;&#35814;&#32454;&#30340;&#35299;&#37322;&#21644;&#20195;&#30721;&#29255;&#27573;&#65292;&#24110;&#21161;&#20320;&#26356;&#22909;&#22320;&#29702;&#35299;&#22914;&#20309;&#23454;&#29616;&#29305;&#23450;&#30340;&#21151;&#33021;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#35201;&#21019;&#24314;&#19968;&#20010; WordPress TinyMCE &#25554;&#20214;&#65292;&#39318;&#20808;&#25105;&#20204;&#38656;&#35201;&#038;..<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[59],"tuisongtax":[],"class_list":["post-2862","post","type-post","status-publish","format-standard","hentry","category-wpdt","tag-pzjc"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts\/2862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/comments?post=2862"}],"version-history":[{"count":0,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts\/2862\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/media?parent=2862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/categories?post=2862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/tags?post=2862"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/tuisongtax?post=2862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}