簡體   English   中英

Wordpress 簡碼(可能是嵌套和輸入)

[英]Wordpress Shortcodes (Possibly Nested & Input)

我一直在與 Wordpress 中的這個問題作斗爭,特別是使用一個內部包含嵌套短代碼的短代碼,這就像一個魅力,但是我想把它變成一個簡單的短代碼,這樣人們會更容易使用。

你可以在這里看到代碼

function pb_timeline($attr,$content){
        $content = wpautop(trim($content));
        return '<ul class="timeline">'.do_shortcode($content).'</ul>';
}
add_shortcode("timeline","pb_timeline");

function pb_tlsection($attr,$content=null){
          return '<li><div class="year">YYYY</div><div class="dot"></div><div class="box"><p>Description To Go Here.</p></div></li>';
}
add_shortcode("timeline_section","pb_tlsection");
?>

短代碼的 HTML 輸出基本上是這樣的

<ul class="timeline">
   <li>
      <div class="year">YYYY</div>
      <div class="dot"></div>
      <div class="box">Description</div>
   </li>
</ul>

我想做的是使用 Wordpress 簡碼,例如

[timeline_section year="2013" description="Hello"]

例如,可以由內容編輯器填寫年份描述 我有為此工作的簡碼,但我不知道或從任何地方開始關於從簡碼標簽輸入數據以准確顯示它應該是什么。

編輯:為此添加解決方案以供自己遇到相同問題的人參考。 改進 Cyrille 的答案,這使我走上了正確的道路。 我發現以下更有效,因為它是......

function pb_tlsection($atts){
        
        extract( shortcode_atts( array(
            'year' => 'YYYY',
            'desc' => 'Description',
            ), $atts, 'timeline_section' ) );
            
          return '<li><div class="year">' . $year . '</div><div class="dot"></div><div class="box"><p>' . $desc . '</p></div></li>';
}
add_shortcode("timeline_section","pb_tlsection");

您應該查看以下鏈接: http : //codex.wordpress.org/Shortcode_API特別是在提取功能。

例如,您可以這樣做:

 function pb_tlsection($attr,$content=null){
        extract( shortcode_atts( array(
            'year' => '2013',
            'description' => 'Hellow',
        ), $atts ) );

        return '<li><div class="year">'.$year.'</div><div class="dot"></div><div class="box"><p>'.$description.'</p></div></li>';

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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