[英]do_shortcode not working
我已經堅持了一段時間。 我正在一個wordpress網站上工作,我從頭開始編寫主題,我使用php調用來獲取我在某些部分需要的wordpress功能。
我正在嘗試使用插件,但通過它調用它
echo do_shortcode('[STORE-LOCATOR]');
只是不工作。 即使我切換到默認模板並發布該代碼,它仍然無法正常工作。 它簡單地回應了"[STORE-LOCATOR]"
任何幫助將不勝感激。
[STORE-LOCATOR]
可能不是WordPress意義上的“ 短代碼 ”。
我在不同的插件,流媒體播放器上遇到過這種情況。 它們使用與短代碼相同的語法,但實際上並非如此。
嘗試使用:
echo apply_filters( 'the_content',' [STORE-LOCATOR] ');
而不是do_shortcode
,看看它是否有幫助。
do_shortcode()
返回一個字符串。 我通過這樣做來實現它:
<?php echo do_shortcode(...); ?>
這特定於Store Locator插件,而不是do_shortcode
。
apply_filters
可以是其他插件的可接受的解決方法,但這對Store Locator不起作用; 你只會看到一個空的空間和一些控件。 這是因為它正在頁面/帖子正文中查找該短代碼,以確定是否在頁面頂部包含其所有js引用。 沒有這些參考,沒有任何東西可行。 請參閱sl-functions.php中的sl_head_scripts
函數。
要更改此行為,只需根據頁面標題修改該功能即可。 在我的實例中,我只希望它在“商店”頁面上,所以我注釋掉了整個$on_sl_page
測試並將其替換為:
$on_sl_page = ( strpos($pagename, 'shop') === 0 );
然后我在app_filters的頁面中調用它,如另一個答案所示:
echo apply_filters( 'the_content','[STORE-LOCATOR]');
這似乎完美無缺。
echo do_shortcode('[STORE-LOCATOR][/STORE-LOCATOR]');
如果你從頭開始編寫全部內容,你需要確保你創建的函數位於插件的根php文件中。 該函數可能看起來像這樣,但您必須使用您用於到達商店位置的任何邏輯:
<?php
function doCoolStuff () {
$var1 = "value1";
$var2 = "value2";
$output = $var1+$var2;
}
return $output;
}
add_shortcode('SOTRE-LOCATIOR', 'doCoolStuff');
?>
然后在你的模板中輸入代碼:
<?php echo do_shortcode('[STORE-LOCATOR]');?>
快樂的編碼和祝你好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.