我正在创建一个自定义WordPress仪表板菜单,我想在那里显示帖子列表。我尝试在函数内显示带循环,但出现错误:
Parse error: syntax error, unexpected '}'
这是我的代码:
function _submenu_cb() {
$args = array ( 'post_type' => 'product', 'post_status' => 'pubish' );
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) : $query->the_post();
echo '<h1>'.the_title().'</h1>';
}
}
如何解决此问题?通过在函数内循环帖子,是否可以在自定义仪表板菜单中显示帖子列表?
答案 0 :(得分:0)
您应该在IDE中安装适当的linters来编辑代码,因为它们将有助于诊断此类snytax错误。
如果您查看整个错误,它也会告诉您它在哪一行。我只是将其粘贴到编辑器中,您可以看到错误的正确位置。
向后看,您似乎没有关闭while
循环。请注意,您使用的代码是while
循环的Alternative Syntax,但是if
语句的标准大括号语法。您需要在endwhile;
之后并在大括号关闭echo
语句之前添加一个if
:
function _submenu_cb() {
$args = array ( 'post_type' => 'product', 'post_status' => 'pubish' );
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) : $query->the_post();
// Do Stuff Here, like output the title
endwhile;
}
}
请注意,您的echo
中也存在WordPress特定的错误。默认情况下,the_title()
实际上输出标题。您正在有效地混合the_title()
和[
get_the_title()`](https://codex.wordpress.org/Function_Reference/get_the_title)。您将要使用其中之一。要么:
echo '<h1>'. get_the_title() .'</h1>';
或放弃回声并使用:
the_title( '<h1>', '</h1>' );