Wordpress - 如果是elseif else声明 - 无法弄清楚错误

时间:2018-03-18 17:45:10

标签: php wordpress if-statement

所以我一直试图让index.php做三件事。

如果有缩略图显示缩略图并执行特定样式。

如果没有缩略图做不同的事情

如果页面是单数的话,那么最后一个语句将显示其他内容。

由于某种原因,它一直在失败。我在这里看过一些演示,但我无法弄清楚

<?php /** this is the first if statement **/?>



<?php         if ( is_home () || is_category() || is_archive() ): ?>

  <?php if ( has_post_thumbnail() ) { ?>
    <article class="blog-card" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
            <?php optz_post_thumbnail(); ?>

        <?php
        if ( is_singular() ) :
            the_title( '<h1 class="entry-title">', '</h1>' );
        else :
            the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
        endif;

        if ( 'post' === get_post_type() ) : ?>
        <div class="entry-meta">

        </div><!-- .entry-meta -->
        <?php
        endif; ?>
    </header><!-- .entry-header -->

    <div class="entry-content">
      <?php

    the_excerpt( sprintf(
                wp_kses(
                    /* translators: %s: Name of current post. Only visible to screen readers */
                    __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'optz' ),
                    array(
                        'span' => array(
                            'class' => array(),
                        ),
                    )
                ),
                get_the_title()
            ) );

            wp_link_pages( array(
                'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'optz' ),
                'after'  => '</div>',
            ) );
?>
        </div><!-- .entry-content -->
        <footer class="entry-footer">
        <?php
                optz_posted_on();
                optz_posted_by();
            ?>
        <?php optz_entry_footer(); ?>
    </footer><!-- .entry-footer -->
</article><!-- #post-<?php the_ID(); ?> -->



<?php /** this is the first second else statement **/  elseif (is_home () || is_category() || is_archive()) :>





<article class="blog-card" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">

        <?php
            the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
        if ( 'post' === get_post_type() ) : ?>
        <div class="entry-meta">

        </div><!-- .entry-meta -->
        <?php
        endif; ?>
    </header><!-- .entry-header -->
<div class="entry-content">
     <?php
            the_content( sprintf(
                wp_kses(
                    /* translators: %s: Name of current post. Only visible to screen readers */
                    __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'optz' ),
                    array(
                        'span' => array(
                            'class' => array(),
                        ),
                    )
                ),
                get_the_title()
            ) );

            wp_link_pages( array(
                'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'optz' ),
                'after'  => '</div>',
            ) );
            ?>

            </div><!-- .entry-content -->
<footer class="entry-footer">
        <?php
                optz_posted_on();
                optz_posted_by();
            ?>
        <?php optz_entry_footer(); ?>
    </footer><!-- .entry-footer -->


          </article><!-- #post-<?php the_ID(); ?> -->
   
<p>Nothing to see</p>
       **更新代码:**     
<?php         if ( is_home () || is_category() || is_archive() ) { ?>

  <?php if ( has_post_thumbnail() ) { ?>
    <article class="blog-card" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
            <?php anasa_post_thumbnail(); ?>

        <?php
        if ( is_singular() ) :
            the_title( '<h1 class="entry-title">', '</h1>' );
        else :
            the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
        endif;

        if ( 'post' === get_post_type() ) : ?>
        <div class="entry-meta">

        </div><!-- .entry-meta -->
        <?php
        endif; ?>
    </header><!-- .entry-header -->

    <div class="entry-content">
      <?php

    the_excerpt( sprintf(
                wp_kses(
                    /* translators: %s: Name of current post. Only visible to screen readers */
                    __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'anasa' ),
                    array(
                        'span' => array(
                            'class' => array(),
                        ),
                    )
                ),
                get_the_title()
            ) );

            wp_link_pages( array(
                'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'anasa' ),
                'after'  => '</div>',
            ) );
?>
        </div><!-- .entry-content -->
        <footer class="entry-footer">
        <?php
                anasa_posted_on();
                anasa_posted_by();
            ?>
        <?php anasa_entry_footer(); ?>
    </footer><!-- .entry-footer -->
</article><!-- #post-<?php the_ID(); ?> -->


<?php /** this is the second else statement **/ } elseif (is_home () || is_category() || is_archive()) {?>
<article class="blog-card" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">

        <?php
            the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
        if ( 'post' === get_post_type() ) : ?>
        <div class="entry-meta">

        </div><!-- .entry-meta -->
        <?php
        endif; ?>
    </header><!-- .entry-header -->
 <div class="entry-content">
     <?php
            the_content( sprintf(
                wp_kses(
                    /* translators: %s: Name of current post. Only visible to screen readers */
                    __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'anasa' ),
                    array(
                        'span' => array(
                            'class' => array(),
                        ),
                    )
                ),
                get_the_title()
            ) );

            wp_link_pages( array(
                'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'anasa' ),
                'after'  => '</div>',
            ) );
            ?>

            </div><!-- .entry-content -->
<footer class="entry-footer">
        <?php
                anasa_posted_on();
                anasa_posted_by();
            ?>
        <?php anasa_entry_footer(); ?>
    </footer><!-- .entry-footer -->


          </article><!-- #post-<?php the_ID(); ?> -->


<?php /** this is the last if else statement **/ } else {?>

<?php 

    if ( is_singular()) {
   echo'hi';

    }?>



<?php }} ?> <!-- this is the main php thumbnail close tag --!>

3 个答案:

答案 0 :(得分:1)

你错过了一个“?”在你的PHP结束标签?在 elseif 之后的行上,您的评论中写着:“这是第一个其他声明”

<?php elseif (is_home () || is_category() || is_archive()) :>

你的另一条评论所在的行 else 上也有一个冒号和一个大括号:这是if else语句的第一个

<?php /** this is the first last if else statement **/ }else :{?>

另外一个建议是,如果你将PHP与Html一起编写(在视图中),许多人使用冒号而不是大括号,因此代码更容易查看。无论哪种方式,无论你喜欢什么,但我认为你应该坚持这两个中的一个。

你的陈述一般都没问题。如果您调整所有语句以使用 :(冒号) {,它应该都可以正常工作。

答案 1 :(得分:0)

不确定这是否会影响您正在做的事情,但通常您希望如果语句被翻转:if ( get_post_type() === 'post' ) : ?>

答案 2 :(得分:0)

你这里有错误

<?php /** this is the first last if else statement **/ }else :{?>

没有冒号就应该这样:

<?php /** this is the first last if else statement **/ }else {?>

尝试对条件语句使用相同的标准,而不是在同一文件中使用不同的约定。