亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Wordpress > 正文

詳解WordPress中簡碼格式標簽編寫的基本方法

2024-09-07 00:48:09
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了詳解WordPress中簡碼格式標簽編寫的基本方法,文中講到了添加和移除簡碼等的一些PHP函數的用法,需要的朋友可以參考下。

WordPress 簡碼是一種類似于論壇標簽的東西,格式類似于把尖括號換成中括號的 Html 標簽。簡碼很多人叫做短代碼,但官方的翻譯應該是簡碼,在這里糾正一下。

簡碼的開發的邏輯比較簡單,主要就是添加、刪除和判斷,會在本文全部介紹。

簡碼格式

簡碼的格式非常靈活,可以是有屬性、無屬性、閉合、非閉合等等:

  1. [example] 
  2.  
  3. [example]內容[/example] 
  4.  
  5. [example attr="屬性" attr-hide="1"]內容[/example] 
  6.  
  7. [example "屬性"

添加簡碼

添加簡碼需要使用 add_shortcode() 函數,兩個屬性,第一個為簡碼名,第二個是簡碼的回調函數。

add_shortcode( $tag, $func );

例如添加名為 test 的簡碼,回調 Bing_shortcode_test() 函數:

  1. function Bing_shortcode_test( $attr$content ){ 
  2.   return 'Hello World!'
  3. add_shortcode( 'test''Bing_shortcode_test' ); 

在文章中添加 [test] 就會輸出 “Hello World!”。

從上邊的例子可以看到,簡碼的回調函數需要接收兩個參數。第一個是簡碼所有的屬性,通過數組儲存;第二個是簡碼的內容(閉合簡碼中的內容)。

移除簡碼

remove_shortcode() 函數可以移除一個簡碼,只需要指定簡碼的名稱即可移除。

remove_shortcode( 'test' );

remove_all_shortcodes() 函數用來移除當前添加的所有簡碼。

remove_all_shortcodes();

判斷簡碼

關于判斷簡碼,有兩個函數,shortcode_exists() 函數判斷簡碼是否存在。

  1. remove_all_shortcodes(); 
  2. if( shortcode_exists( 'test' ) ) echo '簡碼 test 存在';//False 
  3. add_shortcode( 'test''Bing_shortcode_test' ); 
  4. if( shortcode_exists( 'test' ) ) echo '簡碼 test 存在';//True 

還有一個 has_shortcode() 函數,判斷字符串中是否出現某某簡碼。

  1. $content = '測試測試測試測試測試測試測試測試'
  2. if( has_shortcode( $content'test' ) ) echo '字符串中有 test 簡碼';//False 
  3. $content = '測試測試測試測[test]測試[/test]試測試測試測試測試'
  4. if( has_shortcode( $content'test' ) ) echo '字符串中有 test 簡碼';//True 

執行簡碼

do_shortcode() 函數用來在字符串中查找簡碼,并在簡碼處調用之前添加的回調函數,把簡碼執行成需要的內容。

WordPress 添加的鉤子:

add_filter( 'the_content', 'do_shortcode', 11 );

例子:

  1. function Bing_shortcode_test( $attr$content ){ 
  2.   return 'Hello World!'
  3. add_shortcode( 'test''Bing_shortcode_test' ); 
  4. $content = '測試測試測試測[test]試測試測試測試測試'
  5. echo do_shortcode( $content );//測試測試測試測Hello World!試測試測試測試測試 

簡碼屬性

簡碼支持各種格式的屬性,接受給簡碼回調函數的第一個參數。如果你要給參數設置默認值,可以使用 shortcode_atts() 函數:

  1. function Bing_shortcode_test( $attr$content ){ 
  2.   extract( shortcode_atts( array
  3.     'url' => 'http://www.bgbk.org'
  4.     'hide' => false, 
  5.     'text' => '點擊隱藏 / 顯示' 
  6.   ), $attr ) ); 
  7.   $hide = $hide ? ' style="display:none;"' : ''
  8.   return '<a href="' . $url . '"' . $hide . '>' . $text . '</a>'
  9. add_shortcode( 'test''Bing_shortcode_test' ); 

只有頁面中使用了簡碼的時候才加載腳本

而在開發的過程中,有時會遇到這種問題:簡碼模塊需要加載 JS 或者 CSS 腳本,而當頁面沒有使用簡碼的時候就會造成資源浪費。

比如下邊的這個 Google 地圖插件:

  1. //添加簡碼 
  2. function Bing_add_google_map( $atts$content ){ 
  3.   //content... 
  4. add_shortcode( 'google_map''Bing_add_google_map'); 
  5.    
  6. //掛載腳本 
  7. function Bing_add_javascript(){ 
  8.   wp_enqueue_script( 'map_scripts' ); 
  9. add_action( 'wp_enqueue_scripts''Bing_add_javascript' ); 

只有在頁面中使用了 [google_map] 簡碼的時候才需要加載腳本,這怎么做到呢?

其實很簡單,只需要在簡碼函數觸發的時候在頁腳掛載腳本即可。

  1. //添加簡碼 
  2. function Bing_add_google_map( $atts$content ){ 
  3.   $GLOBALS['google_map_shortcode'] = true; 
  4.   return '地圖的代碼'
  5. add_shortcode( 'google_map''Bing_add_google_map'); 
  6.    
  7. //掛載腳本 
  8. function Bing_add_javascript(){ 
  9.   global $google_map_shortcode
  10.   if( isset( $google_map_shortcode ) && $google_map_shortcode ) wp_enqueue_script( 'map_scripts' ); 
  11. add_action( 'wp_footer''Bing_add_javascript' ); 

總結:

簡碼是個非常強大的功能,對文章內容是一種很好的擴展,利用好可以讓添加某些東西變的方便快捷。

關于簡碼的函數都在:wp-includes/shortcode.php 文件里,有能力的朋友可以閱讀一下,了解原理。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产高清自拍| 中文字幕精品久久久久| 亚洲香蕉成人av网站在线观看| 亚洲图片欧美日产| 亚洲欧美国产精品久久久久久久| 亚洲aaaaaa| 91色琪琪电影亚洲精品久久| 亚洲第一av网站| 另类天堂视频在线观看| 日韩精品视频免费| 久久久99免费视频| 韩国国内大量揄拍精品视频| 在线精品视频视频中文字幕| 成人激情视频免费在线| 久久精品最新地址| 亚洲天堂开心观看| 91精品啪在线观看麻豆免费| 国产成人免费av电影| 欧美大片在线免费观看| 日韩av最新在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲国产精品va在看黑人| 亚洲精品美女网站| 欧美成人精品在线视频| 日本最新高清不卡中文字幕| 亚洲国产精品va在线观看黑人| 久久99精品久久久久久噜噜| 亚洲图中文字幕| 欧美美女操人视频| 国产精品国产三级国产专播精品人| 亚洲自拍偷拍视频| 亚洲欧美一区二区三区在线| 欧美最猛性xxxxx免费| 国产一区二区三区网站| 欧美国产一区二区三区| 中文字幕日韩欧美| 欧美中文在线字幕| 欧美日韩国产综合新一区| 欧美性xxxx极品hd欧美风情| 麻豆精品精华液| 国产精品aaa| 国产一区二区三区毛片| 这里只有精品在线观看| 国产精品9999| 欧美性xxxxxxx| 九九热精品视频国产| 亚洲性av网站| 日本高清视频一区| 成人亚洲欧美一区二区三区| 欧美区二区三区| 夜夜嗨av一区二区三区四区| 久久久久成人精品| 成人免费午夜电影| 欧美中文在线字幕| 精品一区二区三区四区| 国产精品欧美在线| 日韩在线视频观看| 国产精品久久久久久久9999| 亚洲奶大毛多的老太婆| 91地址最新发布| 国产精品www色诱视频| 日韩中文字幕国产| 欧美电影《睫毛膏》| 欧美国产日韩一区二区在线观看| 精品成人国产在线观看男人呻吟| 色哟哟入口国产精品| 欧美日韩xxx| 欧美乱人伦中文字幕在线| 最好看的2019的中文字幕视频| 在线免费看av不卡| 欧美午夜性色大片在线观看| 亚洲www永久成人夜色| 欧美日韩性视频在线| 亚洲一区二区国产| 欧美国产日韩一区二区| 欧美激情在线一区| 国产精品夫妻激情| 精品国模在线视频| 久热精品视频在线观看| 国产精品香蕉国产| 国产日韩精品在线观看| 欧美综合一区第一页| 欧美日韩一区二区三区在线免费观看| 久久免费视频在线观看| 91精品国产精品| 国产丝袜精品第一页| 日韩亚洲一区二区| 日韩免费观看视频| 不卡av日日日| 欧美天天综合色影久久精品| 91成人在线视频| 亚洲自拍偷拍色图| 久久人人爽人人爽爽久久| 欧美猛少妇色xxxxx| 亚洲成人精品视频在线观看| 国产精品一区二区久久久| 欧美日韩高清在线观看| 亚洲97在线观看| 亚洲视频在线播放| 国产精品永久免费| 亚洲国产小视频在线观看| 亚洲最大的网站| 欧美日韩国产成人| 成人做爽爽免费视频| 中文字幕日韩精品在线观看| 亚洲成人av在线播放| 国产成人av在线播放| 国产精品视频一区国模私拍| 日韩一区av在线| 亚洲第一av网站| 在线成人激情黄色| 久久99国产精品自在自在app| 日本午夜精品理论片a级appf发布| 性色av一区二区三区| 久久久精品网站| 搡老女人一区二区三区视频tv| 中文字幕精品一区二区精品| 国产精品jvid在线观看蜜臀| 久久久久久国产三级电影| 亚洲图片欧洲图片av| 在线免费观看羞羞视频一区二区| 亚洲国产精品人久久电影| 国产亚洲欧美另类中文| 久久久久久久影院| www国产亚洲精品久久网站| 黄色精品在线看| 高潮白浆女日韩av免费看| 92看片淫黄大片看国产片| 亚洲成av人片在线观看香蕉| 日韩少妇与小伙激情| 国产精品国语对白| 久久综合网hezyo| 国产一区av在线| 亚洲国产精品美女| 国产精品91视频| 色偷偷88888欧美精品久久久| 亚洲欧美日韩综合| 国产精品亚发布| 亚洲肉体裸体xxxx137| 欧美刺激性大交免费视频| 国产情人节一区| yellow中文字幕久久| 欧美成人免费一级人片100| 午夜精品一区二区三区在线视| 亚洲变态欧美另类捆绑| 日韩中文字幕亚洲| 久久久久久美女| 92福利视频午夜1000合集在线观看| 国产精品久久9| 91在线免费观看网站| 日韩综合视频在线观看| 午夜精品三级视频福利| 国产成人精品日本亚洲专区61| 国产精品免费电影| 亚洲视频国产视频| 久久久久久久久91| 欧美成人性色生活仑片| 欧美日韩在线视频一区| 亚洲黄色成人网| 精品久久久视频| 国产精品极品美女粉嫩高清在线| 欧美性xxxx极品hd满灌| 日韩欧美精品免费在线| 国产成人欧美在线观看|