您错误地放置了endwhile
指示您的代码正在进入while循环并遇到elseif
外面if
块
当前代码大纲(伪代码):
if :
while:
elseif:
endwhile;
else:
endif;
语法正确的代码大纲:
if :
while:
...
endwhile;
elseif:
else:
endif;
您必须移动此行:
<?php endwhile;
就在下面:
<option value="<?php the_permalink(); ?>"><?php the_title(); ?></option>
HOWEVER 这根本行不通!while循环没有其他情况。我想你应该做一些类似的事情:
<select name="select-city" onchange="location = this.value;">
<option value="">Select a post to read</option>
<?php
if ( is_user_logged_in() ):
global $current_user;
wp_get_current_user();
$author_query = array(\'posts_per_page\' => \'-1\',\'author\' => $current_user->ID);
$author_posts = new WP_Query($author_query);
$numposts = $count_user_posts( $user_id );
if ($numposts == 0) {
echo \'You have no posts\';
} else {
while($author_posts->have_posts()) : $author_posts->the_post(); ?>
<option value="<?php the_permalink(); ?>"><?php the_title(); ?></option>
<?php endwhile;
}
else :
echo \'<a href="https://www.mysiteeeee.com/wp-login.php" >Log in</a>\';
endif; ?>
并将while放在if-else中,检查用户是否有帖子。
However 这不会完全奏效,因为
echo
a内ing
<select>
tag什么都做不了。取而代之的是,将select环绕在while周围,仅当有帖子时才打开它。