WordPress Shortcode 速成指南:無需編碼即可輕鬆嵌入HTML組件
WordPress 短代碼為作者提供了一種便捷的方式,無需編寫代碼即可在渲染頁面中插入HTML組件。這些短代碼可以在插件代碼中創建,也可以放置在主題的functions.php文件中。
短代碼的關鍵優勢:
建議創建一份短代碼速查表,包含各種示例,尤其是在處理複雜功能時,這將使內容管理更加便捷和用戶友好。
短代碼創建位置:
通常,為自定義插件創建的短代碼應放置在插件代碼本身中。但是,您也可以將短代碼定義放置在主題的functions.php文件中。更實用的方法是創建一個單獨的shortcodes.php文件,然後使用以下語句將其包含在functions.php中:
include('shortcodes.php');
第一個“Hello World”短代碼:
短代碼定義包含:
add_shortcode()
鉤子的調用,該鉤子將短代碼文本定義綁定到該函數。 最基本的示例:
// "Hello World" 短代码 function shortcode_HelloWorld() { return '<p>Hello World!</p>'; } add_shortcode('helloworld', 'shortcode_HelloWorld');
保存文件,然後在頁面或文章中輸入[helloworld]
。訪問該頁面,您將看到它已被替換為“Hello World!”段落。
短代碼參數:
短代碼可以具有可選參數,例如:
<code>[sitemap title='网页列表', depth=3]</code>
參數作為數組傳遞給短代碼函數作為第一個參數。生成頁面層次結構站點地圖的完整代碼:
// sitemap 短代码 function shortcode_GenerateSitemap($params = array()) { // 默认参数 extract(shortcode_atts(array( 'title' => '站点地图', 'id' => 'sitemap', 'depth' => 2 ), $params)); // 创建站点地图 $sitemap = wp_list_pages("title_li=&depth=$depth&sort_column=menu_order&echo=0"); if ($sitemap) { $sitemap = ($title ? "<h2>$title</h2>" : '') . '<ul>' . $sitemap . '</ul>'; } return $sitemap; } add_shortcode('sitemap', 'shortcode_GenerateSitemap');
shortcode_atts()
函數在需要時為參數分配默認值。然後,PHP extract()
函數將每個數組值轉換為實際變量 $title
、$id
和 $depth
。 (如果您使用的是PHP 5.4或更高版本,則可以使用較短的[...]
語法替換array(...)
。)在任何文章或頁面中添加[sitemap]
短代碼,並根據需要更改參數,例如[sitemap depth=5]
。
嵌套BBCode短代碼:
BBCode(公告板代碼)是一種輕量級標記格式,與標準短代碼一樣,使用[方括号]
來表示命令。這允許短代碼包含文本內容或彼此嵌套。假設您的頁面需要引用和通用的號召性用語按鈕。創建一個單個短代碼是不切實際的,尤其是在按鈕可以單獨使用或嵌入到引用中時。我們可能需要這樣的HTML:
include('shortcodes.php');
當編輯器非常熟悉HTML時,這可能會出錯。幸運的是,短代碼提供了一種更簡單的途徑,例如:
// "Hello World" 短代码 function shortcode_HelloWorld() { return '<p>Hello World!</p>'; } add_shortcode('helloworld', 'shortcode_HelloWorld');
標籤之間的內容作為第二個參數傳遞給短代碼函數。我們可以創建兩個短代碼函數:
<code>[sitemap title='网页列表', depth=3]</code>
請注意do_shortcode($content)
函數的使用,該函數在存在時將進一步的短代碼應用於內容。短代碼易於實現,並且可以快速更改或增強。我建議創建一個包含示例的短代碼速查表,以便編輯器在需要復雜功能時可以參考。
(文章部分內容由SiteGround贊助提供。感謝您支持使SitePoint成為可能的合作夥伴。)
以上是如何為編輯器創建自定義的WordPress短代碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!