我寫了一個基於ID顯示作者個人資料的短代碼。例如[user-profile id =「1」]將顯示作者1在user-profile.php中定義的配置文件塊。它工作(即使在同一頁面上有多個實例)。多個實例破解WordPress短代碼
function user_profile($atts, $content = null) {
extract(shortcode_atts(array('id' => ''), $atts));
include 'user-profile.php';
}
...除了短代碼輸出顯示在其他條目內容之前,無論它在代碼中的位置如何。爲了解決這個問題,我添加了這個修復:
function user_profile($atts, $content = null) {
extract(shortcode_atts(array('id' => ''), $atts));
function get_user_profile() { include 'user-profile.php'; }
ob_start();
get_user_profile();
$output_string = ob_get_contents();
ob_end_clean();
return $output_string;
}
......它解決了定位問題,但破壞了短代碼的多個實例。 [user-profile id =「1」]可以工作,但[user-profile id =「1」] [user-profile id =「2」]會將其分開 - 頁面剛剛停止加載。
我該如何修改這個以允許多個實例?
如果出現什麼錯誤,您會收到什麼錯誤?我懷疑它是由於在函數中定義了一個函數,你有沒有試過把'function get_user_profile(){}'移出user_profile函數 – 2011-06-06 18:25:29
,請將你的評論移到回答部分,並將其標記爲正確的答案。 – ariefbayu 2011-06-07 04:52:51
@silent謝謝,謝謝,是的,我試過之前,但它說我不能做8小時。 – ryanve 2011-06-10 22:02:28