正确的方式来编写这个php条件语句

时间:2016-07-01 11:10:37

标签: php wordpress

我不熟悉php,因为我是新手。我试图使用这些代码行但却出错。写这个的正确方法是什么:

<?php 
if ( function_exists( 'wpsabox_author_box' ) ) {
    echo wpsabox_author_box();
} else {
    echo (
            '<div class="postauthor">
                <div class="authorprofilepix">'
                     get_avatar( get_the_author_id() , 80 );
                '</div>

                <div class="authorprofile">
                    <h4>' the_author(); '</h4>
                    <p>' the_author_description(); '</p>
                </div>
                <div class="clearfix"></div>

            </div><!--end postauthor-->');

}
?>

感谢您的期待!

4 个答案:

答案 0 :(得分:3)

你应该在echo调用中的字符串和函数调用之间添加点。

e.g。

echo ('string' . function() . ' string ');

答案 1 :(得分:1)

使用这种方式:

<?php if (function_exists( 'wpsabox_author_box' ) ) {
            echo wpsabox_author_box();
        } else { ?>
         <div class="postauthor">
            <div class="authorprofilepix">'
             <?php echo get_avatar( get_the_author_id() , 80 ); ?>
            </div>
            <div class="authorprofile">
                <h4><?php echo  the_author(); ?></h4>
                <p><?php echo the_author_description(); ?></p>
            </div>
            <div class="clearfix"></div>

        </div><!--end postauthor-->

   <?php     }

 ?>

答案 2 :(得分:0)

以下是您的代码的工作方式:

<?php 
if ( function_exists( 'wpsabox_author_box' ) ) {
    echo wpsabox_author_box();
} else {
    echo '<div class="postauthor">
            <div class="authorprofilepix">' . get_avatar(get_the_author_id(), 80 ); . '</div>
                <div class="authorprofile">
                    <h4>' . the_author() . '</h4>
                    <p>' . the_author_description() . '</p>
                </div>
                <div class="clearfix"></div>

            </div><!--end postauthor-->';    
}
?>

以下是首选解决方案:

<?php if (function_exists( 'wpsabox_author_box' ) ) {
            echo wpsabox_author_box();
        } else { ?>
         <div class="postauthor">
            <div class="authorprofilepix">
             <?php echo get_avatar( get_the_author_id() , 80 ); ?>
            </div>
            <div class="authorprofile">
                <h4><?php the_author(); ?></h4>
                <p><?php the_author_description(); ?></p>
            </div>
            <div class="clearfix"></div>

        </div><!--end postauthor-->

   <?php     }

 ?>

正如您所看到的,Ravi的解决方案稍微纠正了一下。我不能说它更好但我更喜欢它,因为它更清楚。

还有一件事。不要使用the_author_description()功能,请改用the_author_meta('description')

答案 3 :(得分:0)

使用逗号来避免字符串连接。另外,使用get_the_author_meta(),因为不推荐使用get_the_author_id()和the_author_description()。

if ( function_exists( 'wpsabox_author_box' ) ) {
    echo wpsabox_author_box();
} else {
    echo  '<div class="postauthor">
            <div class="authorprofilepix">',
                 get_avatar( get_the_author_meta('ID') , 80 ),
            '</div>

            <div class="authorprofile">
                <h4>', get_the_author(), '</h4>
                <p>', get_the_author_meta('description'), '</p>
            </div>
            <div class="clearfix"></div>

        </div><!--end postauthor-->';
}