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 回答