2013-02-01 70 views
0

插件代碼短代碼沒有給我想要輸出的WordPress

function myShortcode($atts) { 
    extract(shortcode_atts(array('cat' => '',), $atts)); 
    ob_start(); 
    if ($cat == '') { echo "Do Nothing!"; } 
    $output_string = ob_get_contents(); 
    ob_end_clean(); 
    return $output_string; 
} 
add_shortcode(mycatlist, myShortcode); 

添加以下簡稱代碼後(在後段從可溼性粉劑管理員)

[mycatlist cat=4] 

添加以下代碼在wordpress模板文件中

<?php echo do_shortcode("[mycatlist]"); ?> 

我得到那個輸出什麼都不做!

,但我想貓值我的意思是4

+0

@Mark。是的,我嘗試過,但沒有工作 –

+1

我不明白你爲什麼需要'ob_'在這段代碼中。 ::::: *「給我輸出」*和*「需要輸出」*代表什麼? ::::據我所見,第一個例子('[mycatlist cat = 4]')有一個空輸出,第二個('do_shortcode(「[mycatlist]」)')應該輸出'Do Nothing!' ... – brasofilo

+0

@brasofilo請再次檢查我編輯的問題 –

回答

0

您發佈的代碼有很多的代碼,已經沒有太大的做你的測試方案。它簡化爲這樣:

function myShortcode($atts) { 

    // maybe add some debugging? 
    // print_r($atts); 

    extract(shortcode_atts(array('cat' => '',), $atts)); 
    return $cat; 
} 
add_shortcode('mycatlist', 'myShortcode'); 

現在這樣稱呼它:

<?php echo do_shortcode("[mycatlist cat=\"4\"]"); ?> 

應該在頁面上打印4。

+0

謝謝@Mark,我正在嘗試該代碼 –

+0

不是代碼<?php echo do_shortcode(「[mycatlist cat = \」4 \「]」); ?>不能爲我工作,bcoz我在模板頁面中使用該代碼,我使用該模板頁面很多頁面時,我從管理員創建頁面 –