簡體   English   中英

do_shortcode無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM