douqiangchuai7674 2016-04-28 11:52
浏览 31
已采纳

Wordpress内联php不起作用

I have a little question why my inline php code doesn't work:

If I wrote my code like this: which is very ugly btw(IMO), it works great.

<?php
$cat = get_terms('logietype'); 
?>
<section class="paddings">
    <div class="container-full">
        <?php


        foreach ($cat as $catVal) {
            echo "<div class='row'>";
            echo "<h2 class='logieheader'>".$catVal->name."</h2>";
            $postArg = array('post_type'=>'logie','posts_per_page'=>-1,'order'=>'desc',
                              'tax_query' => array(
                                                    array(
                                                        'taxonomy' => 'logietype',
                                                        'field' => 'term_id',
                                                        'terms' => $catVal->term_id
                                                    )
                            ));

            $getPost = new wp_query($postArg);
            global $post;

            if($getPost->have_posts()){

                    while ( $getPost->have_posts()):$getPost->the_post();
                        echo "<div class='col-md-4 no-padding'>";
                        echo "<h3 class='logieheader'>".$post->post_title."</h3>";
                        echo "<p>".$post->post_content."</p>";
                        echo "</div>";
                    endwhile;

            }
            echo '</div>';
        }
    ?>
    </div>
</section>

But when I try this: which is much cleaner(IMO), nothing works :(

<?php
$cat = get_terms('logietype'); 
?>
<section class="paddings">
    <div class="container-full">

        <?php foreach ($cat as $catVal): ?>
            <div class='row'>
            <h2 class='logieheader'><?php $catVal->name ?></h2>
            <?php $postArg = array('post_type'=>'logie','posts_per_page'=>-1,'order'=>'desc',
                              'tax_query' => array(
                                                    array(
                                                        'taxonomy' => 'logietype',
                                                        'field' => 'term_id',
                                                        'terms' => $catVal->term_id
                                                    )
                            ));

            $getPost = new wp_query($postArg);
            global $post; ?>

            <?php if($getPost->have_posts()): ?>

                    <?php while ( $getPost->have_posts()):$getPost->the_post(): ?>
                        <div class='col-md-4 no-padding'>
                        <h3 class='logieheader'><?php $post->post_title ?></h3>
                        <p><?php $post->post_content ?></p>
                        </div>
                    <?php endwhile; ?>

            <?php endif; ?>
            </div>
        <?php endforeach; ?>

    </div>
</section>

Anyone has any idea why the one works and the other doesn't?

Many thanks in advance!

  • 写回答

2条回答 默认 最新

  • duanhuang4306 2016-04-28 11:57
    关注

    The error is because of the following line:

     <?php while ( $getPost->have_posts()):$getPost->the_post(): ?>
                                                               ^ see this colon here
    

    It should be,

     <?php while ( $getPost->have_posts()):$getPost->the_post(); ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于单片机数字电压表电路组成及框图
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line