一个函数内的多个循环

时间:2016-01-10 作者:Locke

我从抄本上了解到(https://codex.wordpress.org/Class_Reference/WP_Query#Multiple_Loops).

然后我试着列出如下帖子:

<nav id="cbp-hrmenu" class="cbp-hrmenu main-menu">
          <ul>
            <li>
              <a href="#">Secciones</a>
              <div class="cbp-hrsub">
                <div class="cbp-hrsub-inner">
                  <div>
                    <h4><a href="#" class="menu-section">Topic 1</a></h4>
                    <ul>
                      <?php echo get_posts_menus(\'topic-1\',\'3\'); ?>
                    </ul>
                    <h4><a href="#" class="menu-section">Topic 2</a></h4>
                    <ul>
                      <?php echo get_posts_menus(\'topic-2\',\'3\'); ?>
                    </ul>
                  </div>
                  <div>
                    <h4><a href="#" class="menu-section">Topic 3</a></h4>
                    <ul>
                      <?php echo get_posts_menus(\'topic-3\',\'3\'); ?>
                    </ul>
                    <h4><a href="#" class="menu-section">Topic 4</a></h4>
                    <ul>
                      <?php echo get_posts_menus(\'topic-4\',\'3\'); ?>
                    </ul>

                  </div>
</li>
</ul>
</nav>
如果您注意到,我正在调用一个名为get_posts_menus() .

我使用的函数是:

if (!function_exists(\'get_posts_menus\')):
  function get_posts_menus($category_name, $count)
{
  $permalink = get_the_permalink();
  $title     = get_the_title($the_menu->post->ID);
  $post_class = get_the_id();

  $args = array(
    \'category_name\' => $category_name,
    \'posts_per_page\' => $count
    );

  $the_menu = new WP_Query($args);

  while ($the_menu->have_posts()) {
    $the_menu->the_post();
    echo "<li class=\\"post-id-$post_class\\"><a href=\\"$permalink\\" alt=\\"$title\\">$title</a></li>";
  }
    wp_reset_postdata();

  }
  endif;
这里发生的事情是,它只会给我们回最后的帖子3次。

但主要的想法是,这将返回该类别的3个最新帖子。

我对此感到非常困惑,我开始考虑使用JSON而不是wp\\U查询。

非常感谢。

1 个回复
最合适的回答,由SO网友:stoopkid1 整理而成

在运行查询之前,永久链接和帖子标题将不可用。以下应返回指定类别的最后3个职位。

同一篇文章显示了3次,因为它看起来不像是在“循环”中设置永久链接或文章标题

if (!function_exists(\'get_posts_menus\')):
  function get_posts_menus($category_name, $count)
{

  $args = array(
    \'category_name\' => $category_name,
    \'posts_per_page\' => $count
    );

  $the_menu = new WP_Query($args);

  while ($the_menu->have_posts()) {
    $post_class = get_the_id();
    $permalink = get_the_permalink();
    $title     = get_the_title();
    $the_menu->the_post();
    echo "<li class=\\"post-id-$post_class\\"><a href=\\"$permalink\\" alt=\\"$title\\">$title</a></li>";
  }
    wp_reset_postdata();

  }
  endif;

相关推荐

retrieve post details in loop

我编写了一个函数来循环浏览用户的帖子,我试图按状态显示每个帖子,并为每个状态组显示不同的消息。出于某种原因-get\\u post\\u status不起作用,其他任何挂钩也不起作用。有人能帮忙吗?我甚至试着暂时缩短函数,只是回显变量,看看它们在做什么,它只是空白。function user_item($type, $tax, $term_name, $term_id) { if (!is_user_logged_in()) return; $args = array(