国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
如何讓W(xué)ordPress編輯器支持內(nèi)聯(lián)SVG代碼,wordpresssvg
首頁(yè) 后端開(kāi)發(fā) php教程 如何讓W(xué)ordPress編輯器支持內(nèi)聯(lián)SVG代碼,wordpresssvg_PHP教程

如何讓W(xué)ordPress編輯器支持內(nèi)聯(lián)SVG代碼,wordpresssvg_PHP教程

Jul 12, 2016 am 08:55 AM
svg

如何讓W(xué)ordPress編輯器支持內(nèi)聯(lián)SVG代碼,wordpresssvg

WordPress編輯器對(duì)SVG的支持一向是非常的不友好,首先它不能上傳SVG文件,也不能自動(dòng)的嵌入到內(nèi)容中讓它正常顯示。同時(shí),對(duì)內(nèi)聯(lián)SVG代碼根本不識(shí)別,會(huì)無(wú)情的將SVG代碼自動(dòng)刪除。

在上一篇文章中我介紹了如何讓W(xué)ordpress支持上傳SVG圖片的方法,似乎是部分的解決了這個(gè)問(wèn)題。最近在開(kāi)發(fā)過(guò)程中遇到了大量的需要在Wordpress可視化編輯器里使用內(nèi)聯(lián)SVG(inline SVG)代碼的情況。

相信你也知道,Wordpress使用的是TinyMCE編輯器,而TinyMCE編輯器僅對(duì)標(biāo)準(zhǔn)的HTML5標(biāo)記進(jìn)行支持,SVG代碼一律不識(shí)別,當(dāng)我在Wordpress的編輯器了“可視化”和“文本”兩個(gè)標(biāo)簽間切換時(shí),所有的SVG代碼都被干凈的刪除。

網(wǎng)上有很多關(guān)于如何讓W(xué)ordpress的TinyMCE支持SVG的討論,在TinyMCE官方網(wǎng)站也找到了配置TinyMCE擴(kuò)展標(biāo)記的文檔。主要是三個(gè)配置點(diǎn):extended_valid_elements,custom_elements和valid_children。下面是網(wǎng)上拷貝的一段網(wǎng)友提供的配置Wordpress編輯器的代碼:

add_filter('tiny_mce_before_init', 'vsl2014_filter_tiny_mce_before_init'<span>);
</span><span>function</span> vsl2014_filter_tiny_mce_before_init( <span>$options</span><span> ) {

    </span><span>if</span> ( ! <span>isset</span>( <span>$options</span>['extended_valid_elements'<span>] ) ) {
        </span><span>$options</span>['extended_valid_elements'] = 'svg'<span>;
    } </span><span>else</span><span> {
        </span><span>$options</span>['extended_valid_elements'] .= ',svg'<span>;
    }

    </span><span>if</span> ( ! <span>isset</span>( <span>$options</span>['valid_children'<span>] ) ) {
        </span><span>$options</span>['valid_children'] = '+body[svg]'<span>;
    } </span><span>else</span><span> {
        </span><span>$options</span>['valid_children'] .= ',+body[svg]'<span>;
    }

    </span><span>if</span> ( ! <span>isset</span>( <span>$options</span>['custom_elements'<span>] ) ) {
        </span><span>$options</span>['custom_elements'] = 'svg'<span>;
    } </span><span>else</span><span> {
        </span><span>$options</span>['custom_elements'] .= ',svg'<span>;
    }

    </span><span>return</span> <span>$options</span><span>;
}</span>

還有網(wǎng)友認(rèn)為下面這樣就可以了:

<span>function</span> override_mce_options(<span>$initArray</span><span>) {
    </span><span>$opts</span> = '*[*]'<span>;
    </span><span>$initArray</span>['valid_elements'] = <span>$opts</span><span>;
    </span><span>$initArray</span>['extended_valid_elements'] = <span>$opts</span><span>;
    </span><span>return</span> <span>$initArray</span><span>;
}
add_filter(</span>'tiny_mce_before_init', 'override_mce_options');

還有網(wǎng)友給出了下面的建議:

上面的這些建議單獨(dú)使用似乎都不成功,但每種建議都似乎能解決一部分問(wèn)題。經(jīng)過(guò)反復(fù)的實(shí)驗(yàn),我最終找到了下面的方法,能成功的讓SVG在Wordpress的TinyMCE編輯器里不被刪除,而且保存良好的格式。

首先在function.php里加入下面的PHP代碼:

<span>/*</span><span>*
 * Add to extended_valid_elements for TinyMCE
 *
 * @param $init assoc. array of TinyMCE options
 * @return $init the changed assoc. array
 </span><span>*/</span>
<span>function</span> my_change_mce_options( <span>$init</span><span> ) {

    </span><span>$ext</span> = 'a[*],altglyph[*],altglyphdef[*],altglyphitem[*],animate[*],animatecolor[*],animatemotion[*],animatetransform[*],circle[*],clippath[*],color-profile[*],cursor[*],defs[*],desc[*],ellipse[*],feblend[*],fecolormatrix[*],fecomponenttransfer[*],fecomposite[*],feconvolvematrix[*],fediffuselighting[*],fedisplacementmap[*],fedistantlight[*],feflood[*],fefunca[*],fefuncb[*],fefuncg[*],fefuncr[*],fegaussianblur[*],feimage[*],femerge[*],femergenode[*],femorphology[*],feoffset[*],fepointlight[*],fespecularlighting[*],fespotlight[*],fetile[*],feturbulence[*],filter[*],font[*],font-face[*],font-face-format[*],font-face-name[*],font-face-src[*],font-face-uri[*],foreignobject[*],g[*],glyph[*],glyphref[*],hkern[*],line[*],marker[*],mask[*],metadata[*],missing-glyph[*],mpath[*],path[*],pattern[*],polygon[*],polyline[*],radialgradient[*],rect[*],script[*],set[*],stop[*],lineargradient[*],style[*],svg[*],switch[*],symbol[*],text[*],textpath[*],title[*],tref[*],tspan[*],use[*],view[*],vkern[*]'<span>;

    </span><span>//</span><span> Add to extended_valid_elements if it alreay exists</span>
    
    <span>if</span> ( <span>isset</span>( <span>$init</span>['extended_valid_elements'<span>] ) ) {
        </span><span>$init</span>['extended_valid_elements'] .= ',' . <span>$ext</span><span>;
    } </span><span>else</span><span> {
        </span><span>$init</span>['extended_valid_elements'] = <span>$ext</span><span>;
    }

    </span><span>//</span><span> Super important: return $init!</span>
    <span>return</span> <span>$init</span><span>;
}

add_filter(</span>'tiny_mce_before_init', 'my_change_mce_options');

在上面的Wordpress過(guò)濾器里,我將所有的SVG標(biāo)記元素都添加了上去(至于用通配符’*[*]’的方法,我沒(méi)有實(shí)驗(yàn)過(guò),有興趣的朋友可以試試,歡迎給出反饋。)

細(xì)心的朋友可能觀察到,上面的SVG標(biāo)記名稱全都改成了小寫。而很顯然SVG官方規(guī)范里規(guī)定SVG標(biāo)記名稱的大小寫是有意義的。但我實(shí)驗(yàn)過(guò),使用駝峰式的SVG標(biāo)記名稱是不行的??赡苁荋TML代碼并不在意大小寫的原因。

第二,在Wordpress的TinyMCE編輯器里,將所有的SVG代碼都用

包裹起來(lái),這樣,TinyMCE編輯器就能保持SVG代碼的原有縮進(jìn)格式。

第三,在代碼里放入一點(diǎn)東西,比如 ,或一句“抱歉,你的瀏覽器不支持SVG”:

<span><</span><span>svg</span><span>></span>

    <span><</span><span>rect</span><span>></span> ... <span></</span><span>rect</span><span>></span><span>

    抱歉,你的瀏覽器不支持SVG
</span><span></</span><span>svg</span><span>></span>

實(shí)施了上面的方法后,我現(xiàn)在使用Wordpress的TinyMCE編輯器,在嵌入SVG代碼后,就像跟寫入普通html代碼一樣,不會(huì)被刪除和情況。我并沒(méi)有深入的研究TinyMCE編輯器對(duì)SVG代碼的處理機(jī)制,上面的這些方法也只是治標(biāo)不治本。也許隨著Wordpress的升級(jí)或TinyMCE升級(jí),這些方法會(huì)失效。

如果你有更巧的方法,請(qǐng)?jiān)谠u(píng)論里分享,謝謝!

原文地址:http://www.manongjc.com/article/657.html

相關(guān)閱讀:

讓W(xué)ordpress支持上傳SVG圖片

WordPress中wp_title()函數(shù)的使用方法詳解

SVG里的幾個(gè)動(dòng)畫元素的用法介紹

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1116241.htmlTechArticle如何讓W(xué)ordPress編輯器支持內(nèi)聯(lián)SVG代碼,wordpresssvg WordPress編輯器對(duì)SVG的支持一向是非常的不友好,首先它不能上傳SVG文件,也不能自動(dòng)的嵌入...
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

聊聊如何利用 SVG 實(shí)現(xiàn)圖片馬賽克效果 聊聊如何利用 SVG 實(shí)現(xiàn)圖片馬賽克效果 Sep 01, 2022 am 11:05 AM

不借助 Javascript,如何利用 SVG 實(shí)現(xiàn)圖片馬賽克效果?下面本篇文章就來(lái)帶大家詳細(xì)了解一下,希望對(duì)大家有所幫助!

深入淺析vue3 vite中怎么使用svg圖標(biāo) 深入淺析vue3 vite中怎么使用svg圖標(biāo) Apr 28, 2022 am 10:48 AM

svg圖片在項(xiàng)目中使用的非常廣泛,下面本篇文章帶大家介紹一下如何在vue3 vite 中使用svg圖標(biāo),希望對(duì)大家有所幫助!

svg怎么轉(zhuǎn)jpg格式 svg怎么轉(zhuǎn)jpg格式 Nov 24, 2023 am 09:50 AM

svg可以通過(guò)使用圖像處理軟件、使用在線轉(zhuǎn)換工具和使用Python圖像處理庫(kù)的方法來(lái)轉(zhuǎn)jpg格式。詳細(xì)介紹:1、圖像處理軟件包括Adobe Illustrator、Inkscape和GIMP;2、在線轉(zhuǎn)換工具包括CloudConvert、Zamzar、Online Convert等;3、Python圖像處理庫(kù)等等。

VUE3入門教程:使用Vue.js插件玩轉(zhuǎn)SVG VUE3入門教程:使用Vue.js插件玩轉(zhuǎn)SVG Jun 16, 2023 am 09:48 AM

隨著現(xiàn)代Web前端開(kāi)發(fā)的不斷發(fā)展,越來(lái)越多的技術(shù)被廣泛應(yīng)用于實(shí)際開(kāi)發(fā)中。其中,Vue.js是目前最為流行的JavaScript框架之一,它基于MVVM模式,提供了豐富的API和組件庫(kù),使得開(kāi)發(fā)響應(yīng)式、可復(fù)用、高效的Web應(yīng)用變得更加容易。而目前最新的Vue.js3版本相較于舊版,又有著更好的性能和更豐富的特性,引起了廣泛的關(guān)注和研究。本文將會(huì)為大家介紹一種

詳解用SVG給 favicon 添加標(biāo)識(shí) 詳解用SVG給 favicon 添加標(biāo)識(shí) Sep 07, 2022 am 10:30 AM

怎么使用SVG給 favicon 添加標(biāo)識(shí)?下面本篇文章給大家介紹一下使用 SVG 生成帶標(biāo)識(shí)的 favicon的方法,希望對(duì)大家有所幫助!

vue3 vite2中怎么使用svg方法 vue3 vite2中怎么使用svg方法 May 11, 2023 pm 05:55 PM

一、安裝vite-plugin-svg-icons此處還需要安裝下fast-glob相關(guān)依賴,不然vite運(yùn)行npmrundev時(shí)會(huì)報(bào)Cannotfindmodule&#39;fast-glob&rsquo;的錯(cuò)誤npmifast-glob@3.x-Dnpmivite-plugin-svg-icons@2.x-D二、在src/components/svgIcon下新建組件index.vueimport{computed}from&#39;vue&#39;;cons

vue3 vue-cli4中怎么使用svg vue3 vue-cli4中怎么使用svg May 11, 2023 pm 05:58 PM

一、安裝svg-sprite-loadernpminstallsvg-sprite-loader--save-dev二、在src/components/svgIcon下新建組件index.vueimport{computed}from"@vue/reactivity";exportdefault{name:"baseSvgIcon",props:{iconClass:{type:String},className:{type:String},},setup

在HTML5畫布上繪制SVG文件 在HTML5畫布上繪制SVG文件 Sep 15, 2023 pm 03:09 PM

要在畫布元素上繪制HTMLImageElements,請(qǐng)使用drawImage()方法。此方法使用src=”mySVG.svg”定義一個(gè)Image變量,并在加載時(shí)使用drawImage。varmyImg=newImage();myImg.onload=function(){??ctx.drawImage(myImg,0,0);}img.src="http://www.example.com/files/sample.svg";

See all articles