你好我试图让这个wp_query循环工作,但得到的错误最终意外,虽然另一个类似的lopp可以输出最近的新闻。请指教。第一个循环用于输出来自" news"类别。
Parse error: syntax error, unexpected 'endwhile' (T_ENDWHILE)
add_shortcode( 'faq_all', 'FAQ_all_function' );
function FAQ_all_function( $atts ) {
$query = new WP_Query( array(
'category_name' =>'FAQ',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'title',
) );
if ( $query->have_posts() ) { ob_start(); ?>
<div class="col-lg-12 col-xs-12 faq"><?php
while ( $query->have_posts() ) ; $query->the_post();
?>
<article><h5><a href="<?php the_permalink() ?>"> the_title() </a></h5>
<div class="post-text"> the_content() <br>
<div class="inner-height collapse" id="<?php the_ID() ?>"></div>
<div class="inner-height-long collapse" id="<?php the_ID() ?>"></div>
<button class="btn transparent" type="button" data-toggle="collapse" data-target="#<?php the_ID() ?>" aria-expanded="true" aria-controls="<?php the_ID() ?>"><i class="icon-chevron-down"></i>Открыть полность</button>
</div>
</article><?php
?>
</div> <?php
endwhile; ob_get_clean(); wp_reset_postdata();
}
}
这是正常输出常见问题类别的工作循环。您可以将两个循环检查为工作考试但第二个基于wp-&gt;查询requset到wp数据库是完全可行的 输出基于php文档的缓冲片段并将其打印出来。
add_shortcode( 'faq1', 'FAQ_function1' );
function FAQ_function1( $atts , $faq1) {
/*start buffering content with nulled variable t the start of the loop*/
$faq1=null;
$query = new WP_Query( array(
'category_name' =>'FAQ',
'posts_per_page' => -1,
'order' => 'ASC',
'cat' => '3',
'orderby' => 'title',
) );
if ( $query->have_posts() ) { ob_start();
?>
<div class="col-lg-6 col-xs-12">
<?php while ( $query->have_posts() ) :static $counter = 0; $query->the_post();
$count = $query->post_count;
if ( $counter > ($count/2)):
?>
<article>
<h5 href="<?php the_permalink(); ?>"><?php the_title(); ?></h5>
<div class="post-text"><?php the_content(); ?></div>
</article>
<?php endif;
$counter++;
endwhile; ?> </div> <?php return ob_get_clean();
/*start buffering content with nulled variable of the start of the loop. Finished with content - outputting. */
wp_reset_postdata(); ?>
<?php
}
也许这是一个错过的胸罩,但眼睛看到什么是不正确的疼痛:
答案 0 :(得分:0)
用以下代码替换您的代码:
add_shortcode( 'faq_all', 'FAQ_all_function' );
function FAQ_all_function( $atts ) {
$query = new WP_Query( array(
'category_name' =>'FAQ',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'title',
) );
if ( $query->have_posts() ) { ob_start(); ?>
<div class="col-lg-12 col-xs-12 faq"><?php
while ( $query->have_posts() ): $query->the_post();
?>
<article><h5><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h5>
<div class="post-text"><?php the_content(); ?><br>
<div class="inner-height collapse" id="<?php the_ID() ?>"></div>
<div class="inner-height-long collapse" id="<?php the_ID() ?>"></div>
<button class="btn transparent" type="button" data-toggle="collapse" data-target="#<?php the_ID() ?>" aria-expanded="true" aria-controls="<?php the_ID() ?>"><i class="icon-chevron-down"></i>Открыть полность</button>
</div>
</article><?php
?>
</div>
<?php
endwhile;
ob_get_clean();
wp_reset_postdata();
}
}
你需要替换';'在这里使用':':
while ( $query->have_posts() ); $query->the_post();
你也没有在php标签中包含一些函数。
答案 1 :(得分:0)
while ( $query->have_posts() ) ;
我认为应该是冒号而不是分号。
顺便说一句:我强烈建议不要使用该语法功能。使用大括号。它们使阅读代码更容易(缩进,btw也是如此),每个具有基本语法高亮功能的编辑器都可以匹配它们,并且它们不是特定于php的东西,不熟悉php的人会绊倒。