1

ショートコードは開閉するので、ワードプレスのphpテンプレートファイルでショートコードを使用しています。その中のコンテンツ全体を1つの変数として取得する必要があります。この場合、コンテンツはワードプレスループです。

これまでのところ、私が持っているのはループの最後の投稿だけです。それが変数の最終的な値であるため、私はその理由を理解しています。最後の投稿だけではなく、コンテンツ全体(つまり、3つの投稿すべて)を変数に入れるのを誰かが手伝ってくれるのではないかと思います。

ありがとう

<?php 
                $news_title .= '';
                $news_single_post .= '';

            if ( have_posts() ) :
            $the_query = new WP_Query( array ( 'posts_per_page' => 3, 'cat' => 1 ) ); /*  */
             while ($the_query->have_posts() ) : $the_query->the_post(); ?>
            <?php 
                $news_title = get_the_title();
                $news_excerpt = get_the_excerpt();
                $news_single_post = '<div class="home-content-news-title">'.$news_title.'</div><div class="home-content-news-excerpt">'.$news_excerpt.'</div>';

                endwhile;
                wp_reset_postdata();

                endif; 



                $news_tab_title_string = 'News';
                $news_tab_title_shortcode = do_shortcode('[wptabtitle]'.$news_tab_title_string.'[/wptabtitle]');
                $news_tab_content_shortcode = do_shortcode('[wptabcontent]'.$news_single_post.'[/wptabcontent]');
                $news_tab = $news_tab_title_shortcode.$news_tab_content_shortcode;
                echo do_shortcode('[wptabs]'.$news_tab.'[/wptabs]');

         ?>
4

1 に答える 1

4

すべてのコンテンツをループの上下に配置する変数を定義します。たとえば$variable = '';、ループ内でその変数に連結し、最後にループの外側を$variable .= $content_to_concat;使用echo $variable;してコンテンツ全体を印刷します。

例としてのコード:

<?php 
    $news_title .= '';
    $news_single_post .= '';
    $news_all_posts = ''; // Define the variable

    if ( have_posts() ) :
    $the_query = new WP_Query( array ( 'posts_per_page' => 3, 'cat' => 1 ) ); /*  */

    while ($the_query->have_posts() ) : $the_query->the_post();

    $news_title = get_the_title();
    $news_excerpt = get_the_excerpt();
    $news_single_post = '<div class="home-content-news-title">'.$news_title.'</div><div class="home-content-news-excerpt">'.$news_excerpt.'</div>';

    $news_all_posts .= $news_single_post; // Add each post to the variable

    endwhile;
    wp_reset_postdata();

    endif;

    $news_tab_title_string = 'News';
    $news_tab_title_shortcode = do_shortcode('[wptabtitle]'.$news_tab_title_string.'[/wptabtitle]');

    // Use the variable to display the content
    $news_tab_content_shortcode = do_shortcode('[wptabcontent]'.$news_all_posts.'[/wptabcontent]');

    $news_tab = $news_tab_title_shortcode.$news_tab_content_shortcode;
    echo do_shortcode('[wptabs]'.$news_tab.'[/wptabs]');
 ?>
于 2012-11-16T14:34:37.443 に答える