Wordpress内联php不起作用

时间:2016-04-28 11:53:00

标签: php wordpress

我有一个小问题,为什么我的内联php代码不起作用:

如果我写这样的代码:这是非常丑陋的btw(IMO),它的效果很好。

<?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>

但是当我尝试这个:更清洁(IMO)时,没有任何作用:(

<?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>

任何人都知道为什么一个有效,另一个没有?

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

错误是由于以下行:

rm -r -f path

应该是,

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

答案 1 :(得分:1)

我认为你应该用分号后,像这样:

<?php $catVal->name; ?>
<h3 class='logieheader'><?php $post->post_title; ?></h3>
<p><?php $post->post_content; ?></p>