为不同的帖子调用BODY_CLASS和wp_NAV_MENU

时间:2016-10-07 作者:rorymorris89

我需要能够显示wp_nav_menubody_class 对于不是当前帖子的页面/帖子。

例如:

// current page/post is ID:100

wp_query/query_posts{

    // currently looping a page/post, i.e. ID:999

    wp_nav_menu(); // returns nav menu for ID:100
    body_class(); // returns body class for ID:100
}
据我所知,听起来我需要修改global $wp_query 让这一切顺利进行。我试过了,但似乎进展不快。

有人能帮忙吗?

非常感谢。

1 个回复
SO网友:birgire

这种方法听起来很复杂、有漏洞,而且不可靠,因为可能会跳过各种过滤器/操作。

我想到了两种可选的半解决方案,以获得wp_nav_menu()body_class(), 对于给定的帖子页面:

使用HTTP API / Ajax可以请求post页面,例如使用GET参数只返回这些值。对于许多帖子来说,这可能很慢。

加载帖子页面时生成这些值,并将其缓存一段时间。例如,我们可以将其存储在post meta API 或使用transients API, 取决于我们的需要。我们必须记住,每个帖子页面的流量可能会有所不同。

相关推荐

如何为class-wp-query.php追踪这些PHP通知和警告的原因?

我的WordPress调试。日志文件中充满了这些PHP通知,间隔大约15分钟,然后是几个小时…[23-Mar-2018 05:33:00 UTC] PHP Notice: Trying to get property of non-object in /home/mysite/public_html/wp-includes/class-wp-query.php on line 3736 [23-Mar-2018 05:33:00 UTC] PHP Notice: Trying to get p