Отображение самых популярных сообщений за последнюю неделю - PullRequest
0 голосов
/ 12 апреля 2020

Я не могу заставить этот популярный почтовый код правильно выводиться, и вместо этого я продолжаю получать неверные аргументы на моем foreach, которые должны просто получать информацию из массива и отображать популярные сообщения. Однако я не совсем уверен, почему его foreach l oop недопустим, поскольку у меня есть аналогичная настройка для отображения последних сообщений.

Вот код для популярных сообщений:

<?php

  $popular_post_args = array(
    'meta_key'  => 'post_views_count',
    'orderby'    => 'meta_value_num',
    'order'      => 'DESC',
    'posts_per_page' => 10,
    'date_query' => array(
        array(
            'after' => '1 week ago',
        ),
    ),
  );
  foreach( $popular_posts_args as $p ){
  ?>

   <div class="paddingarea text-dark">

     <div class="the-image" style="margin-top: -20px;">
         <a href="<?php echo get_permalink($p['ID']) ?>"><img src="<?php echo get_the_post_thumbnail_url($p['ID'], array(440, 240)); ?>"/></a>
     </div>

   <a class="posttitle" href="<?php echo get_permalink($p['ID']) ?>" style="font-weight: 600; font-size: 16px;"><span href="#" class="badge badge-primary" style="border-radius: 0;"><?php
   foreach(get_the_category($p['ID']) as $category) {
   echo $category->name;
 }
 ?></span>
 <?php echo $p['post_title']?></a><br />
   </div>

   <?php
   $authorname = get_the_author();

   echo '<p class="authortext">From ' . '<strong class="colorauthor">' . $authorname . '</strong>' . '</p>';

    ?>


   <?php
  }
 ?>

и вот код для моих недавних постов:

<?php

$result = wp_get_recent_posts(array(
'numberposts' => 10,
'category' => '',
'post_status' => 'publish',
));

foreach( $result as $p ){
?>

<div class="paddingarea text-dark">

<div class="the-image" style="margin-top: -20px;">
    <a href="<?php echo get_permalink($p['ID']) ?>"><img src="<?php echo get_the_post_thumbnail_url($p['ID'], array(440, 240)); ?>"/></a>
</div>

<a class="posttitle" href="<?php echo get_permalink($p['ID']) ?>" style="font-weight: 600; font-size: 16px;"><span href="#" class="badge badge-primary" style="border-radius: 0;"><?php
foreach(get_the_category($p['ID']) as $category) {
echo $category->name;
}
?></span>
<?php echo $p['post_title']?></a><br />
</div>

<?php
$authorname = get_the_author();

echo '<p class="authortext">From ' . '<strong class="colorauthor">' . $authorname . '</strong>' . '</p>';

?>


<?php
}
?>

Как вы можете видеть, это в основном тот же код, но просто переназначенный для отображения популярных постов, однако ничего не отображается, а верхняя часть кода просто выдает незваных foreach l oop ошибок. Так что я не уверен, почему он их дает, потому что это не тот же самый запрос, который получает массив?

1 Ответ

0 голосов
/ 12 апреля 2020

Похоже, у вас просто опечатка. Ваша переменная определяется как $popular_post_args. В вашем foreach вы используете $popular_posts_args, который не определен и, следовательно, ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...