web-dev-qa-db-ja.com

メインナビゲーションメニューとフッターがカテゴリ/タグページに表示されない

私はいくつかのページに表示されないプライマリナビゲーションのための解決策を見つけようとしました、すなわち。 archive.php.

ここから 1つ が見つかりましたが、それでも通知が表示されます。

Reverie ThemeWordPress 3.6-alpha-23288を使っています

これは修正を実装した後の私のコードです

プラグイン/ MyMainPlugin.php

add_filter( 'getMainMenu',  array( $this, 'getMainMenu'),           10, 1);
function getMainMenu( $menuLocation ) {
    $locations          = get_nav_menu_locations();

    if ( empty( $menuLocation ) ) {
        $menuLocation   = 'primary_navigation';
    }

    $menuItems          = wp_get_nav_menu_items( $locations[ $menuLocation ] );
    if ( empty( $menuItems ) ) {
        return false;
    } else {
        wp_nav_menu( array(
            'theme_location'    => $menuLocation,
            'container'         => false,
            'menu_class'        => '',
            'echo'              => true,
            'before'            => '',
            'after'             => '',
            'link_before'       => '',
            'link_after'        => '',
            'depth'             => 0,
            'items_wrap'        => '<ul class="nav-bar">%3$s</ul>',
            'walker'            => new reverie_walker() ) );
        return true;
    }
}

Theme/header.php

if ( !apply_filters( 'getMainMenu', 'primary_navigation' ) ) {
    $backup     = $wp_query;
    $wp_query   = NULL;
    $wp_query   = new WP_Query( array( 'post-type' => 'post' ) );
    apply_filters( 'getMainMenu', 'primary_navigation' );
    $wp_query   = $backup;
}

特記事項

Notice:is_categoryが誤って呼び出されました。条件付き照会タグは、照会が実行される前には機能しません。それ以前は、常にfalseを返していました。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージは、バージョン3.1で追加されました。)/var/www/customers/xxx/public_html/wp-includes/functions.php 2981行目で注意:is_tagが誤って呼び出されました。条件付き照会タグは、照会が実行される前には機能しません。それ以前は、常にfalseを返していました。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージはバージョン3.1で追加されました。)/var/www/customers/xxx/public_html/wp-includes/functions.phpの2981行目に

これを解決する方法、およびこれを引き起こしている可能性があるという考えはありますか?何が原因なのかわかりません。

更新
これは実際にはフッターにも影響します。だから、私は私のarchive.phpページにもフッターが表示されません。

1
micadelli

この行は奇妙に見えます:

$wp_query   = new WP_Query( array( 'post-type' => 'post','page' ) );

代わりに試してみてください。

$wp_query   = new WP_Query( array( 'post_type' => array('post','page') ) );

ps:post_type修正のための@Johannes Pilleに感謝します。

1
birgire