0

キャプションである複数のオプションを持つスライダーショートコードを設定し、スライダーのカスタム投稿タイプにメタボックスを使用して、キャプション、キャプションテキストなどを表示するかどうかなどのオプションを提供します。基本的に私が使用した場所

if ( $captionCheckbox !== '1') {

    endif;

$slider .= '</li>';

if と endif の間のすべてがテーマを破っていますが、理由がわかりません。ショートコード コード全体が役立つ場合は、ここにあります。

function ls_slider_shortcode( $atts, $content = null ) {

$slider = '<section id="slider" class="flexslider container clearfix">';

    $slider .= '<ul class="slides">';

        $sliderQuery = "post_type=slider";

        query_posts( $sliderQuery );


        if ( have_posts() ) : while ( have_posts() ) : the_post();

            $slideImage = get_the_post_thumbnail( $post->ID, 'slider');


            $slider .= '<li>';
                $slider .= $slideImage;

                $captionCheckbox = get_post_meta( get_the_id(), 'ls_show_slider_caption', true);
                $productCheckbox = get_post_meta( get_the_id(), 'ls_show_button_link', true);
                $position        = get_post_meta( get_the_id(), 'ls_caption_position', true);
                $heading         = get_post_meta( get_the_id(), 'ls_caption_heading', true);
                $text            = get_post_meta( get_the_id(), 'ls_caption_text', true);
                $productLink     = get_post_meta( get_the_id(), 'ls_project_link', true);

                    if ( $captionCheckbox !== '1' ) {

                        $slider .= '<div class="caption' . $position . '>';
                            $slider .= '<div class="body">';
                                $slider .= '<h2 class="caption-title">' . $heading . '</h2>';
                                $slider .= '<p>' . $text . '</p>';
                            $slider .= '</div>';

                            if ( $captionCheckbox !== '1' ) {
                                $slider .= '<a href="' . $productLink .'">View Project</a>';
                            }

                            endif;

                        $slider .= '</div>'
                    }

                    endif;

            $slider .= '</li>';

        endwhile; endif; wp_reset_query();

    $slider .= '</ul>';

$slider .= '</section>';

return $slider;


}

add_shortcode('slider', 'ls_slider_shortcode');
4

2 に答える 2

0
function ls_slider_shortcode( $atts, $content = null ) {

$slider = '<section id="slider" class="flexslider container clearfix">';

    $slider .= '<ul class="slides">';

        $sliderQuery = "post_type=slider";

        query_posts( $sliderQuery );


        if ( have_posts() ) : while ( have_posts() ) : the_post();

            $slideImage = get_the_post_thumbnail( $post->ID, 'slider');


            $slider .= '<li>';
                $slider .= $slideImage;

                $captionCheckbox = get_post_meta( get_the_id(), 'ls_show_slider_caption', true);
                $productCheckbox = get_post_meta( get_the_id(), 'ls_show_button_link', true);
                $position        = get_post_meta( get_the_id(), 'ls_caption_position', true);
                $heading         = get_post_meta( get_the_id(), 'ls_caption_heading', true);
                $text            = get_post_meta( get_the_id(), 'ls_caption_text', true);
                $productLink     = get_post_meta( get_the_id(), 'ls_project_link', true);

                    ?>

                    <?php if ( $captionCheckbox !== '1' ): ?>

                        <?php

                        $slider .= '<div class="caption' . $position . '>';
                            $slider .= '<div class="body">';
                                $slider .= '<h2 class="caption-title">' . $heading . '</h2>';
                                $slider .= '<p>' . $text . '</p>';
                            $slider .= '</div>';

                            ?>

                            <?php if ( $captionCheckbox !== '1' ): ?>
                                <?php $slider .= '<a href="' . $productLink .'">View Project</a>'; ?>
                            <?php endif; ?>



                        <?php endif; ?>

                        <?php

                        $slider .= '</div>'

                        ?>


                    <?php endif; ?>

                    <?php

            $slider .= '</li>';

        endwhile; endif; wp_reset_query();

    $slider .= '</ul>';

$slider .= '</section>';

return $slider;


}
于 2012-08-25T22:41:45.210 に答える
0

この形式では、中かっこを使用する、閉じたいブロックをendifコロンで開きます。

<?php if ( $captionCheckbox !== '1'): ?>

  // do stuff

<?php endif; ?>

中括弧を使用する場合は、右中括弧で十分です。

<?php if ( $captionCheckbox !== '1') { ?>

  // do stuff

<?php } ?>
于 2012-08-25T22:34:29.193 に答える