2014-03-18 65 views
0

我有一個自定義的帖子類型叫做水果,我期待創建一個簡短的代碼,根據我稱之爲簡碼進行更新。例如,自定義帖子類型被稱爲水果,我有一個水果列表作爲帖子。我希望簡碼能夠鏈接到該水果帖子。更新基於關閉名稱的WordPress的短代碼

add_shortcode('apple', 'apple'); 
function apple() 
{ 
return '<a href="http://example.com/fruit/apple/>Apple</a>'; 
} 

現在我可以寫爲橙色,bannna和所有其他水果簡碼,但我不知道我怎麼能做出這樣使剛剛可以寫一個短代碼,並根據,如果我把[蘋果],[橙色],[芒果]它會更新網址到?

+0

可能重複(http://stackoverflow.com/questions/17473011/dynamically-generate-wordpress-shortcodes) – brasofilo

回答

0

我會建議創建一個名爲[水果]的簡碼,並有一個名爲「水果」的參數,這樣你只需要一個簡單的水果代碼。

function fruit($atts) { 
    extract(shortcode_atts(array(
      'fruit' => 'apple' 
    ), $atts)); 

    if($fruit == "apple") { 
     $return = "<a href='http://example.com/fruit/apple/'>Apple</a>"; 
    } elseif($fruit == "orange") { 
     $return = "<a href='http://example.com/fruit/orange/'>Orange</a>"; 
    } 

    return $return; 
} 
add_shortcode('fruit', 'fruit'); 

然後你可以調用短碼[fruit fruit ='apple']或[fruit fruit ='orange']。

編輯:

function fruit() { 
    $label = sanitize_text_field($_GET['slug']); 
    $slug = strtolower($_GET['slug']); 


    return "<a href='http://example.com/fruit/" . $slug . "/'>" . $label . "</a>"; 
} 
add_shortcode('fruit', 'fruit'); 
[動態生成的WordPress簡碼]的
+0

謝謝你,雖然什麼我試圖避免必須這麼做的if else語句。水果不是我實際的自定義帖子類型,但只是用作我的示例。在我實際的自定義帖子類型中,我將有超過100多篇文章,所以有辦法抓取URL slug並將其替換爲蘋果,所以我不必每次添加新帖子時都要編寫代碼行鍵入所有的帖子? – Greenhoe

+0

我添加了一個編輯,那是你在找什麼?你可能需要編輯'$ _GET ['slug']'部分。 – DNACode