安男

ナビゲーションバーについて

0

プロフェッショナルブログを使って、企業サイトを構築中なのですがトップページのナビゲーションについて教えてください。

ページの構成としては、下記のようになっております。
トップページ(ウェブページにて制作)
  |------製品紹介(ブログにて制作)
  |------設備紹介(ブログにて制作)
  |------会社概要(ウェブページにて制作)
|------お問合せ(ウェブページにて制作)

※上記全てテーマをプロフェッショナルウェブサイトにしております。

ヘルプには新しいページをナビゲーションに自動で登録する場合、@topnavというシークレットタグを使うことでナビゲーションに自動登録されるとのことですがウェブページはできるもののブログのトップページの記事を作って@topnavを設定しても反映されませんでした。

@topnavのタグがウェブページのみで対応だとすると、ブログとして作ったページへのナビゲーションへの登録は各ブログのテンプレートを修正するしか方法はないのでしょうか?

何かいい方法がございましたら、教えてください。宜しくお願い致します。

返信(8)

| 返信する
  • はじめまして。同じ問題で困っています。もし、解決方法があるようでしたら、ご教示いただけないでしょうか。
    下のように試してみたものの、rootのメインページと同じ表示になりません。

    ■事象1
    ヘッダーから親の『ナビゲーション』を読み込むよう設定しても、ウェブページとして作成したページへのリンクが表示されません。

    [例]

    <$mt:Include module="ナビゲーション" blog_id="10"$>

    parent="1"と設定してもダメ。

    ---------------------------------------------

    ■事象2
    ブログのアーカイブテンプレート(『ブログ記事』や『ブログ記事リスト』)でヘッダーをparent="1"やblog_id="n"を設定すると、再構築時にエラーが発生します。

    [例]

    <$mt:Include module="ヘッダー" body_class="mt-entry-archive" parent="1"$>

    親の管理画面から再構築するとエラーが発生しないのですが、ブログの管理画面で再構築するとエラーとなります。

    よろしくお願い致します。

  • こんにちは。
    確認ですが、

    ・事象1の「ナビゲーション」の内容はどのようになってますでしょうか。
    ・事象2はどのようなエラーでしょうか。

    よろしくお願い致します。

  • yujiroさん こんばんは。ご返信いただきありがとうございます。

    ■事象1のナビゲーションは、下記のとおりです。
    なお、いろいろと設定を変えては試してみたため、@topnavを使用しておらず、スマートな記述になっておりませんがご了承ください。@topnav使用しても同じ状況でした。

    <ul>
        <li class="first<mt:If name="main_index"> on</mt:If>"><a href="<$mt:Link template="メインページ"$>">ホーム</a></li>
        <mt:Pages tag="@school">
        <mt:SetVarBlock name="this_page_id"><$mt:PageID$></mt:SetVarBlock>
        <li class="<mt:If name="nav_on" eq="$this_page_id"> on</mt:If>"><a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a></li>
        </mt:Pages>
        <mt:Pages tag="@maker">
        <mt:SetVarBlock name="this_page_id"><$mt:PageID$></mt:SetVarBlock>
        <li class="<mt:If name="nav_on" eq="$this_page_id"> on</mt:If>"><a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a></li>
        </mt:Pages>
        <mt:Pages tag="@community">
        <mt:SetVarBlock name="this_page_id"><$mt:PageID$></mt:SetVarBlock>
        <li class="<mt:If name="nav_on" eq="$this_page_id"> on</mt:If>"><a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a></li>
        </mt:Pages>
        <mt:Blogs include_blogs="12">
        <mt:SetVarBlock name="this_page_id"><$mt:BlogID$></mt:SetVarBlock>
        <li class="<mt:If name="nav_on" eq="$this_page_id"> on</mt:If>"><a href="<mt:BlogURL />"><mt:BlogName /></a></li>
        </mt:Blogs>
        <mt:Blogs include_blogs="14">
        <mt:SetVarBlock name="this_page_id"><$mt:BlogID$></mt:SetVarBlock>
        <li class="last<mt:If name="nav_on" eq="$this_page_id"> on</mt:If>"><a href="<mt:BlogURL />"><mt:BlogName /></a></li>
        </mt:Blogs>
    </ul>

    ------------------------------------

    ■事象2のエラーは、下記のとおりです

    日付アーカイブ「Monthly20091001000000」の再構築中にエラーが発生しました: テンプレート「ブログ記事リスト」の再構築中にエラーが発生しました: タグでエラーがありました: モジュール「ヘッダー」でエラーが発生しました: テンプレート「ヘッダー」の再構築中にエラーが発生しました: タグでエラーがありました: mtWebsiteURLをコンテキスト外で利用しようとしています。MTWebsitesコンテナタグの外部で使っていませんか?

    ●エラーが出るときの記述

    <$mt:Include module="ヘッダー" body_class="mt-entry-archive" parent="1"$>

    ●エラーが出ないときの記述

    <$mt:Include module="ヘッダー" body_class="mt-entry-archive"$>

    parent="1"を記述するとエラーになるため、ここが原因だと考えております。

    よろしくお願い致します。

  • 事象1について:
    親ウェブサイトのモジュールを読み込むのなら,ここで読み込まれるウェブページは,親ウェブサイト内で設置したウェブページということになりますけど,ひょっとしてブログの方でウェブサイトを作っていたりしませんか?
    もしくは,事象2と連動しているために読み取れていない可能性もありますが…

    事象2について:
    エラーの内容を見ると(これは事象1と関連しているんですが),親ウェブサイトのコンテキストを発生させていないのではないでしょうか?
    parent="1"は,親ウェブサイトのモジュールにインクルードするためのモディファイアですので,当然自動的にウェブサイトのコンテキストが発生するという訳ではありません.
    よって,インクルード先のウェブサイトのモジュールでMTWebsite系のファンクションタグを使っていたら,コンテキストはブログ内のままですのでエラーということになってしまいます.
    なので,MTIncludeの外をMTBlogParentWebsiteで囲ってしまえば解決すると思います.

    parent="1"を入れてない場合にエラーが出ないのは,おそらくそのブログのテンプレートに同一名のモジュールテンプレートがあるからだと思われます.

    • すみません.事象1の「ブログの方でウェブサイトを作っていたり」の部分,「ブログの方でウェブページを作っていたり」の誤りです.失礼しました.

  • HashiMさん ご返信いただきありがとうございました。

    ご教示いただいたとおりに、MTBlogParentWebsiteで囲うことでエラーが表示されなくなりました。ナビゲーションも全項目が表示されるようになり、解決致しました。
    本当にありがとうございました!!

    ただ、パンくずで下層ページに相当する要素が表示されない現象が発生しているので、もう少し考えてみます。

    事象1は、事象2と関連するとのことですので、後日時間があるときに同じような解決方法で試してみたいと思います。
    目的としては、ヘッダーかグローバルナビゲーションを1ファイルで共通化することを実現するために、2つの方法を試しただけなので、これで解決できました。

    なお、サイトは、プロフェッショナルウェブサイトで作成しており、ウェブページの一覧に『hogehogeへようこそ(root)』や『about』があるため、ブログではないと認識していますがあっています。
    また、サイト構成は、安男さんと同様に、トップページ、ウェブページ x3 とブログページ x2 としています。

    • パンくずリストについては,ブログごとのモジュールを使ったほうがいいと思いますし,ウェブサイトのウェブページのパンくずリストはウェブページに直接記述する方がインクルードするよりも早いです.
      うちもそうしています.

      うちの場合(当然個人サイトです),プロフェッショナルテンプレートは使っていませんが…
      ・ウェブサイト
       ・ウェブページ×9(うち6つはナビゲーションに表示なし)
       ・ブログ×3(うち1つはナビゲーションに表示なし)
       ・コミュニティ掲示板×2(うち1つはテーマ作成のテスト用)
      こんな感じです(^^;

  • HashiMさん アドバイスありがとうございます。
    ブログやウェページごとにパンくずのモジュールを作成してみます。
    ご丁寧に教えていただき、ありがとうございました!!

返信する


OpenID対応しています OpenIDについて