2011-12-18 68 views
1

的代碼如下 - 它採用了WordPress的簡碼是[my_hmg=widget.xml]但如果你試圖改變這樣[my_hmg=example_gallery.xml]它只是始終將恢復爲默認widget.xmlPHP WordPress的畫廊沒有找到XMLl文件

的XML文件問題在於功能my_hmg_filter_Callback特別是這兩行;

@$my_hmg_file = @$output['filename']; 
if($my_hmg_file==""){$my_hmg_file = "widget.xml";} 

由於某些原因,它總是認爲文件名是空白的,因此總是回覆到widget.xml。

文件可以從這裏下載 - http://www.gopiplus.com/work/2010/07/18/horizontal-motion-gallery/

function my_hmg_show_filter($content){ 
    return preg_replace_callback('/\[my_hmg=(.*?)\]/sim','my_hmg_filter_Callback',$content); 
} 


function my_hmg_filter_Callback($matches) 
{ 
    $my_hmg_package = ""; 
    $var = $matches[1]; 
    parse_str($var, $output); 

    @$my_hmg_file = @$output['filename']; 
    if($my_hmg_file==""){$my_hmg_file = "widget.xml"; 
} 
+0

最簡單的檢查方法是'echo $ output ['filename'];'或者甚至更好:'echo var_dump($ output);'。它會告訴你'filename'是否被設置,或者它是否設置爲空字符串。請將結果添加到您的問題中。 – FakeRainBrigand 2011-12-18 18:24:01

回答

0

首先短代碼更改爲[my_hmg file='file.xml']

然後,如果你有Wordpress's short code API快速閱讀,你會看到,在第一個參數回調函數是短代碼的屬性。

這樣你可以引用數組中的屬性'文件'並獲得正確的URL。