如何在wp导航菜单中列出最近发布的帖子?

时间:2013-06-17 作者:Horacsio

我已经尝试了一段时间,没有得到明确的答案。

我需要在我的一个菜单项中显示11篇最近的帖子。我的菜单如下:

项目1·曼巴·项目3

我需要在翻滚MAMBA时显示帖子标题和相应的url。我从Joeyjoejoe\'s Category menu item and its last 10 posts as sub-menu 但按原样粘贴,我可以将所有子菜单项的最新帖子作为类别。

我不得不改变一下,只在曼巴出现:

$category_ten_last_posts = array(
    \'showposts\' => 11,
    \'category_name\' => \'mamba\',
以及目标项目:

$post->menu_item_parent = 45;
可悲的是,代码开始以重复的方式重复最近的帖子列表:

树眼镜蛇

。。。。。。。。。。

16号岗位

15号岗位

。。。

16号岗位

15号岗位

。。。

我在这里的问题是如何列出从选定类别到特定菜单项的受控数量的最近帖子?

谢谢你所能给予的一切帮助。

顺致敬意,H

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

检查每个菜单项的ID值怎么样,如下所示:

   if( $item->ID === 45):  // ADD THIS MENU-ITEM ID CHECK
        // Query the lasts ten category posts
        $category_ten_last_posts = array(
             \'posts_per_page\' => 11,
             \'category_name\' => \'mamba\',
             \'orderby\' => \'date\',
             \'order\' => \'DESC\'
        );
        $posts = get_posts( $category_ten_last_posts );
        foreach ( $posts  as $post ) {
            //...
         }
    endif;
ps:我移动了get_posts() 超出foreach输入参数。

更新此操作适用于我的安装:

!is_admin() AND add_filter( \'wp_get_nav_menu_items\', \'display_lasts_ten_posts_for_categories_menu_item\', 10, 3 );

// Add the ten last posts of af categroy menu item in a sub menu
function display_lasts_ten_posts_for_categories_menu_item( $items, $menu, $args ){
    $menu_order = count($items); 
    $child_items = array();
    foreach ( $items as $item ):
        if( $item->ID === 45 ): 
            // Query the lasts ten category posts
            $category_ten_last_posts = array(
                \'posts_per_page\' => 11,
                \'category_name\'  => \'mamba\',
                \'orderby\'        => \'date\',
                \'order\'          => \'DESC\'
            );
            $posts = get_posts( $category_ten_last_posts );
            foreach( $posts as $post ):
                // Add sub menu item
                $post->menu_item_parent = $item->ID;
                $post->post_type        = \'nav_menu_item\';
                $post->object           = \'custom\';
                $post->type             = \'custom\';
                $post->menu_order       = ++ $menu_order;
                $post->title            = $post->post_title;
                $post->url              = get_permalink( $post->ID );
                /* add children */
                $child_items[]          = $post;
            endforeach;
        endif;
    endforeach;
    return array_merge( $items, $child_items );
}

结束

相关推荐

对外部PHP脚本中GET_POSTS返回的帖子进行计数

我使用外部PHP脚本中的WP,包括wp-load.php 文件到目前为止,所有功能和一切都按预期工作,除了一件事:我无法获得$wp_query->found_posts 在我用get_posts() 作用有什么提示我应该用什么来代替吗?谢谢