2011-03-12 22 views
11

我一直在這一段時間卡住了。我正在開發一個wordpress網站,我從頭開始編寫主題,我使用php調用來獲取某些章節中需要的wordpress功能。do_shortcode不起作用

我想使用插件,但通過

echo do_shortcode('[STORE-LOCATOR]'); 

只是心不是工作調用它。即使我切換到默認模板併發布該代碼,它仍然不起作用。它只是回聲"[STORE-LOCATOR]"

任何幫助將不勝感激。

+0

從[文檔](http://codex.wordpress.org/Function_Reference/do_shortcode):「如果沒有短代碼標記定義,則內容將在沒有任何過濾的情況下被返回,如果插件被禁用,這可能會導致問題,因爲它的短代碼仍然會顯示在帖子或內容中。 - 插件是否真的活躍? – 2011-03-12 14:10:23

+0

'[STORE-LOCATOR]'是否適用於發佈內容? – Dogbert 2011-03-12 14:11:25

+0

是的,它確實顯示出來。 – sjobe 2011-03-12 14:12:14

回答

35

[STORE-LOCATOR]可能不是'WordPress的意義上的'短代碼'。

我在不同的插件,流媒體播放器上遇到了這個問題。他們使用與簡碼相同的語法,但實際上並不是。

嘗試使用:

echo apply_filters('the_content',' [STORE-LOCATOR] '); 

,而不是do_shortcode,並看看是否有幫助。

+7

我剛碰到這個確切的(商店定位器)問題,並發現這個問題。這個答案解決了問題,應該是被接受的答案。 – 2013-06-08 00:59:54

+1

這不是公認的答案嗎?這工作。我有一個電子商務插件這個問題! 謝謝! – ProblemsOfSumit 2013-10-06 21:07:28

+0

你是朋友,是救世主!謝謝! – NPC 2015-09-16 17:26:14

2

這是專門針對商店定位器插件的,而不是一般的do_shortcode

apply_filters對於其他插件可以是可以接受的解決方法,但這對Store Locator無效;你只會看到一個空的空間和一些控件。這是因爲它正在尋找頁面/文章正文中的簡碼,以確定是否將所有js引用包含在頁面頂部。沒有這些參考文獻,什麼都不會起作用。請參閱sl-functions.php中的sl_head_scripts函數。

要改變這種行爲,只需修改該功能,以基於頁面標題進行匹配。在我的例子中,我希望它只是一個「店」的頁面,所以我註釋掉整個$on_sl_page測試以及與此替代它:

$on_sl_page = (strpos($pagename, 'shop') === 0);

然後我把它叫做我與apply_filters頁面中指定的對方回答:

echo apply_filters('the_content','[STORE-LOCATOR]');

這似乎很好地工作。

13

do_shortcode()返回一個字符串。 我得到它的工作做:

<?php echo do_shortcode(...); ?> 
0
echo do_shortcode('[STORE-LOCATOR][/STORE-LOCATOR]'); 
+0

由於長度限制,您的答案被標記爲低質量。嘗試更深入地解釋你的答案。 – 2018-02-09 14:24:57