【问题标题】:If/else statement inside the same div tag (formatting)同一个 div 标签内的 if/else 语句(格式化)
【发布时间】:2018-06-06 20:46:22
【问题描述】:

我正在尝试在同一个文档中正确设置 php 和 html 的格式。我似乎无法正确转换。 ....

这是原始的 HTML:

<div class="content-holder clearfix">
    <div class="container">
        <div class="row">
            <div class="span12">
                <div class="row">
                    <div id="title-header" class="span12">
            <div class="page-header">
          <?php get_template_part("static/static-title"); ?>
            </div> 
                </div>
                <div class="row">
                <?php if ($masonrycategory=='false') { ?>
                    <div class="span8 <?php if (of_get_option('blog_sidebar_pos')==''){echo 'right';}else{echo of_get_option('blog_sidebar_pos'); } ?>" id="content">
                        <?php get_template_part("loop/loop-blog-main"); ?>
                    </div>
                    <div class="span4 sidebar" id="sidebar">
                        <?php dynamic_sidebar("hs_main_sidebar"); ?>
                    </div>
                    <?php }else{ ?>
                    <div class="span12 id="content">
                        <?php get_template_part("loop/loop-blog-masonry"); ?>
                    </div>
                    <?php } ?>
                      </div>
                </div>
            </div>
        </div>
    </div>
</div>

我需要将其转换为 PHP。 ...

    } else {

echo "<div class='content-holder clearfix'>";
    echo "<div class='container'>";
        echo "<div class='row'>";
            echo "<div class='span12'>";
                echo "<div class='row'>";
                    echo "<div id='title-header' class='span12'>";
            echo "<div class='page-header'>";
           get_template_part("static/static-title"); 
            echo "</div>"; 
                echo "</div>";
                echo "<div class='row'>"
                if ($masonrycategory=='false') { 
                    echo "<div class='span8' . 'if (of_get_option('blog_sidebar_pos')==''){echo 'right';}else{echo of_get_option('blog_sidebar_pos'); } ?>" id="content">
                        <?php get_template_part("loop/loop-blog-main"); ?>
                    </div>
                    <div class="span4 sidebar" id="sidebar">
                        <?php dynamic_sidebar("hs_main_sidebar"); ?>
                    </div>
                    <?php }else{ ?>
                    <div class="span12 id="content">
                        <?php get_template_part("loop/loop-blog-masonry"); ?>
                    </div>
                    <?php } ?>
                      </div>
                </div>
            </div>
        </div>
    </div>
</div>
} ?> 

【问题讨论】:

  • 您不需要将任何内容“转换”为 PHP。您的原始文档是完全有效的 PHP。
  • 只需将 HTML 文件保存为 PHP 文件即可。
  • 您可能会发现一个不错的 IDE 有助于突出显示语法错误

标签: php html wordpress


【解决方案1】:

语法错误:

echo "<div class='span8' . 'if (of_get_option('blog_sidebar_pos')==''){echo 'right';}else{echo of_get_option('blog_sidebar_pos'); } ?>" id="content">

在您更加自信之前,您可能会发现在您的编码风格中更加冗长:

echo '<div class="span8';
if (of_get_option('blog_sidebar_pos') == '') {
    echo ' right';
} else {
    echo of_get_option('blog_sidebar_pos');
}
echo '" id="content">';

【讨论】:

  • 这似乎在某种程度上有效,但是,“right”的 HTML 输出仍然不正确:
    但“right”应该在课堂上......
  • 嗯,好的-我已经编辑了上面的答案,将“正确”添加到类属性中
【解决方案2】:

您可以像这样使用 if else 简写:

div class="span8 <?php $v= (of_get_option('blog_sidebar_pos')=='')? 'right':of_get_option('blog_sidebar_pos') ;echo $v;?>" id="content">

考虑of_get_option fn没有任何错误。

【讨论】:

  • 更短:您不必定义$v 变量。只需echo ( some case is true ) ? 'true case' : 'false case';
猜你喜欢
相关资源
最近更新 更多
热门标签