0

我正在使用 elementor,它是 Wordpress 的页面构建器,我创建了一个短代码来显示其中的自定义帖子类型循环......

当我插入短代码时,它会在编辑器中正确显示,但是当我保存它并尝试正常访问页面时,代码似乎已经破坏了页面并且页面只是不断重复......这是页面链接:http ://webserver-meetandengage-com.m11e.net/about-us/加载需要一点时间,但你会看到这一切都在重复......

我在想我可能没有正确关闭循环或其他东西,但我看不出我哪里出错了!还值得注意的是,直接添加到模板文件中时循环可以正常工作。

循环在这里:

<div class="container team-members-container">

    <h2 style="font-weight: bold; text-align: center; margin:70px 0 70px 0;">The Team</h2>

    <div class="row">

        <?php
            $args = array( 
              'post_type' => 'team_members'
              // 'orderby' => 'none'
            );
            $the_query = new WP_Query( $args );
        ?>

        <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

        <div class="col-sm-4">  
        <a href="<?php the_permalink(); ?>">

            <?php 

            $image = get_field('photo');

            if( !empty($image) ): ?>

                <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />

            <?php endif; ?>

            <h2 class="team-name"><?php the_field('name'); ?></h2>
            <p class="team-position"><?php the_field('position'); ?></p>

        </a>
        </div>

        <?php endwhile; wp_reset_postdata(); endif; ?>

    </div>

</div>

并且循环包含在它自己的名为 team.php 的文件中。我用来创建简码的 functions.php 文件中的代码是:

function get_team($atts) {
  ob_start();
  get_template_part('inc/team');
  return ob_get_clean();
}
add_shortcode('team', 'get_team');

创建[team]要在我的页面编辑器中使用的简码。

谁能看到问题可能出在哪里?谢谢你看:)

4

2 回答 2

1

尝试这个

 <div class="row">

        <?php
            $args = array( 
              'post_type' => 'post'
              // 'orderby' => 'none'
            );
            $the_query = new WP_Query( $args );
        ?>

        <?php if ( $the_query->have_posts()  ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

        <div class="col-sm-4">  
        <a href="<?php the_permalink(); ?>">

            <?php 

            $image = get_field('photo');            
            if( !empty($image) ): ?>

                <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />

            <?php endif; ?>

            <h2 class="team-name"><?php //the_field('name'); ?></h2>
            <p class="team-position"><?php //the_field('position'); ?></p>

        </a>
        </div>

        <?php endwhile; wp_reset_postdata(); endif; ?>

    </div>

</div>
于 2018-01-17T14:06:59.997 回答
1

尝试更改if ( have_posts() )if ( $the_query->have_posts() )

条件需要正确访问 $the_query 对象。

https://codex.wordpress.org/Class_Reference/WP_Query

于 2018-01-17T13:59:47.487 回答