[WordPress] 2 回同じページで、カスタム ショートを実行します。

スポンサーリンク

質問

ワードプレスの問題で助けを必要があります

特定のパラメーターを持つテーブル内のデータのリストを取得するカスタム ショート コードを作成:

add_shortcode("archive", "archive_render");
function archive_render($atts) {

extract(shortcode_atts(array(
    "rientro" => "no",
    "year" => "",
), $atts));

global $wpdb;

$rientro == "si" ? $rientro = "yes" : "no";

$query = "SELECT event_name FROM wp_em_events WHERE EXTRACT(YEAR FROM event_end_date) = ".$year." AND event_end_date < CURDATE()";
$pasts_event = $wpdb->get_col($query);

function get_pasts_event( $pasts_event ){

    foreach ( $pasts_event as $past_event_slug ) {
        $output .= "<li><a href="".get_site_url()."/eventi/".$past_event_slug."">$past_event_slug</a></li>";
    }

    return $output;
}

$string = '
[accordian class="" id=""]
'.$year.'
<ul>'.get_pasts_event($pasts_event).'</ul>
[/accordian]
'; echo do_shortcode( $string );

}

過去の日付が現在の日付と比較してすべてのイベントを取得します

ページに 2 回、ショート コードを追加する場合、のみ最初のショート作品とページ コンテンツの残りの部分を表示する停止します

誰かがこの問題を解決するために私を助けることができるか?

の答え

はあなたのコード再配置させてエコー、文字列を返す必要がありますワードプレスのショート

function get_pasts_event( $pasts_event ){

    foreach ( $pasts_event as $past_event_slug ) {
        $output .= "<li><a href="".get_site_url()."/eventi/".$past_event_slug."">$past_event_slug</a></li>";
    }

    return $output;
}

add_shortcode("archive", "archive_render");
function archive_render($atts) {

    extract(shortcode_atts(array(
        "rientro" => "no",
        "year" => "",
        ), $atts));

    global $wpdb;

    $rientro == "si" ? $rientro = "yes" : "no";

    $query = "SELECT event_name FROM wp_em_events WHERE EXTRACT(YEAR FROM event_end_date) = ".$year." AND event_end_date < CURDATE()";
    $pasts_event = $wpdb->get_col($query);


    $string = '
[accordian class="" id=""]
'.$year.'
<ul>'.get_pasts_event($pasts_event).'</ul>
[/accordian]
'; return $string; }

http://stackoverflow.com/questions/27972546/run-custom-shortcode-twice-in-the-same-page

スポンサーリンク

Leave a Reply