0

当我尝试更新一直使用 wp_list_pages 的旧主题以使用 wp_nav_menu 时,显示我的帖子和页面的循环会中断。我尝试了不同的实现,包括:

http://thinkvitamin.com/code/getting-started-with-wordpress-custom-menus/

http://wpfirstaid.com/2010/07/upgrade-wp_list_pages-to-wp_nav_menu/

以及来自 WordPress codex 的基本实现。

对 functions.php 进行更改对循环没有影响,但是当我将任何版本的 wp_nav_menu 添加到我的模板中时,它会阻止调用帖子或页面的循环工作。我的循环是:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

如果我使用 query_posts,则内容将显示,但有关循环的某些内容不适用于 wp_nav_menu。出现的是一个 ID 错误的空帖子(并且 post_class 也无法正常工作):

<div class="post--42 post type-post status-publish format-standard hentry" id="post--42">
        <h2></h2>

代码是:

<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <h2><?php the_title(); ?></h2>

就在故障回路的下方。每个帖子或页面都会显示此特定 ID。

有任何想法吗?

编辑添加:

现在在functions.php中我有:

add_action('init', 'register_custom_menu');

function register_custom_menu() {
register_nav_menu('header', 'Header Menu');
}

在我的 header.php 中,我有:

<?php wp_nav_menu(array('menu' => 'Header Menu')); ?>

我创建的菜单是在 GUI 中选择的。菜单显示完美,但页面上的内容不见了。

4

2 回答 2

0

根据您提供的信息,我认为您需要添加 endwhile,如下所示。让我知道是否是这种情况:)

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

and ends here:

<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

请务必在主题模板的顶部包含对标题模板的调用。如果您在自己的设计中使用循环(并且您自己的设计不是模板),请将 WP_USE_THEMES 设置为 false。

<?php define('WP_USE_THEMES', false); get_header(); ?>

参考链接- http://codex.wordpress.org/The_Loop

于 2012-07-25T04:08:18.750 回答
0

问题出在 Shopp 插件上。显然这是 Shopp 的一个已知问题:https ://shopp.lighthouseapp.com/projects/47561/tickets/1905-shopp-products-in-theme-menu-causes-blank-pages

解决方法是创建自定义菜单项,而不是将产品放入菜单中。

于 2012-07-26T04:04:15.103 回答