#php #wordpress #woocommerce #wordpress-theming #custom-wordpress-pages
Вопрос:
Этот код позволяет мне отображать подключенному пользователю список его написанных статей. Тем не менее, я хотел бы выбрать сообщение, которое появляется, когда статьи не были написаны (когда список пуст).
Я знаю, что мне нужно IF
заявление, но я действительно не знаю, куда его поместить и с какими данными.
Я хотел бы, чтобы пользователь, у которого нет статей, увидел, что «нет статей» написано.
Заранее спасибо,
Вот мой код:
add_action( 'woocommerce_account_dashboard' , 'recent_posts', 3 );
function recent_posts() {
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);
?><div id="recentposts">
<ul class="liststylenone">
<?php
while($author_posts->have_posts()) : $author_posts->the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
?></ul><?php
else :
echo "not logged in";
endif;
?>
Комментарии:
1. Ваш цикл while должен находиться внутри оператора IF, который решает, если ($author_posts->have_posts() >>0 ) >>.. если не просто повторять «без статей». это может быть внутри if(is_user_logged_in()) и за пределами элемента <ul>.
Ответ №1:
Когда вы используете wp_query
, у него есть свойство, называемое found_posts
. Прямо перед вашим ul
тегом мы проверим, есть ли какая-либо запись в вашем запросе. Если сообщение не найдено, мы отправим эхо p
тега с сообщением. Вот так:
add_action('woocommerce_account_dashboard', 'recent_posts', 3);
function recent_posts()
{
if (is_user_logged_in()) :
global $current_user;
$author_query = array('posts_per_page' => '-1', 'author' => $current_user->ID);
$author_posts = new WP_Query($author_query);
?>
<div id="recentposts">
<?php
if ($author_posts->found_posts) {
?>
<ul class="liststylenone">
<?php
while ($author_posts->have_posts()) : $author_posts->the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
?>
</ul>
<?php
} else {
echo '<p class="author-no-post-yet">No Articles</p>';
}
else :
echo "not logged in";
endif;
}