サポート » 使い方全般 » header.phpの中にnavigationがあるのですが、Sample Page と出てきます。

  • 解決済 wordfile

    (@wordfile)


    header.phpの中にnavigationがあるのですが、Sample Page と出てきます。navigation.phpはheader.phpと同じフォルダにあり、header.phpのnavigationの部分に下記のように記載しているのですが、header.php自体もphpで読み込んでいるので二重の読み込みはワードプレスでは許されていないのでしょうか?

    ・こんな感じです
    <div class=”headerinner-wrap-secondly”>

    <!– Navigation –>
    <?php wp_nav_menu( array ( ‘theme_location’ => ‘header-navi’ ) ); ?>
    <!– /Navigation –>

    <ul class=”c-social-btn-wrap”>

    ・下記の書き方に変更しても同じです。
    <!– Navigation –>
    <?php wp_nav_menu(); ?>
    <!– /Navigation –>

    最後に<?php wp_nav_menu(); ?>のように相対パスでphpは指定しないようですが、
    これはindex.phpと他のphpファイルはすべてカレントディレクトリにあるというルールがあるからなのでしょうか?
    index.php以外はhtmlフォルダに入れたい場合はどうするんですかね?

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • これは想像ですが
    WordPress管理画面の外観 > メニューにひとつメニューが作られていて
    そのメニューに Sample Page という固定ページが配置されている
    のではないでしょうか。

    wp_nav_menu() の引数に、表示したいメニューを省略した場合は
    作成済みメニューの最初の一つが選ばれるようになっています。
    メニューが一つだけなら、必ずそれになります。

    参考
    https://wpdocs.osdn.jp/テンプレートタグ/wp_nav_menu

    >>>
    WordPress管理画面の外観 > メニューにひとつメニューが作られていて

    マルチサイトになっているのでUIが違うせいか、
    外観をホバーしてもメニューが出てこずにテーマとカスタマイズしか出てこないのですが、
    マルチサイトの場合どこにあるか教えていただければ幸いです。

    またテーマの編集をしていくと確かにsamplepageという文言が出てきます。
    ただ削除ボタンがありません。

    wordfileさん

    おそらくですが、テーマ自体、オリジナルの物かカスタマイズされてはいないでしょうか?
    わたくしも、マルチサイトを使用していますが、以下のソースが設定されていれば、「外観 > メニュー」が表示されないのは考えづらいので、functions.phpの内容の確認をする必要があるかと思われます。

    
    // カスタムメニューの設定 --------------------------------------------------------------------------------
    if(function_exists('register_nav_menu')) {
    	register_nav_menu( 'header-navi', __( 'header navi' ) );
    }
    

    ありがとうございます。

    一部抜粋しますが、検索しても見つかりませんでした。

    [モデレーターによる編集: 長すぎるコードの引用を削除しました。コードの引用には外部のペーストビンサービスを利用してください。]

    すべて張り付けたほうがいいでしょうか?

    • この返信は5 ヶ月、 1 週前に  Takayuki Miyoshi さんが編集しました。理由: 不適切なコード挿入を修正

    完全なオリジナルのテーマです。
    ドロワーメニューもうまく行っていません

    なんでも外部化はできないのでしょうか?

    wordfileさん

    下記みたいな、外部読み込みもないですよね?

    
    require_once ( dirname(__FILE__) . '/functions/****.php' );	
    

    もしかすると、標準のメニュー機能をつかわず、カスタムフィールドやプラグインを使う仕様になってる(製作者の「wp_nav_menu()」消し忘れ)など可能性ないですかね?かなり可能性としてはうすいですが。

    おそらく、主題の「Sample Page」はデフォルトでワードプレスが自動作成するページ(page slug)なので、たまに制作上行いますが、メニューが選ばれない場合は、メニューに固定ページ一覧をメニューとして作成するという手法が考えられます。

    なので、おそらくは、

    
    if(function_exists('register_nav_menu')) {
    	register_nav_menu( 'global-menu', __( 'Global menu' ) );
    	register_nav_menu( 'header-navi', __( 'header menu' ) );
     
    }
    

    を試しに記述してみてはいかがでしょうか?

    そもそも、テーマ自体に標準のメニュー機能が有してるのか、有してないのか必要があるかもしれません。

    >>ドロワーメニューもうまく行っていません
    ってことは、なんかしらメニューがあって、設計れべるではうまく行ったが、実装してみたら発動条件を満たしてなかった?(仮定)の可能性
    あるいは、権限の問題?も視野に入れた方が良いかもしれないですね。

    ちなみに、現在の権限は、ネットワーク管理者でしょうか?

    wordfileさん

    これはindex.phpと他のphpファイルはすべてカレントディレクトリにあるというルールがあるからなのでしょうか?
    index.php以外はhtmlフォルダに入れたい場合はどうするんですかね?

    ちょっと、きになりました。
    ワードプレスの場合、選択したテーマフォルダにあるもの(php)が読まれ、フロント側で、ワードプレスのインストール先のディレクトリーがルートとして認識するものが通常の仕様になっているの思います。

    そのルール以外にしたい場合は、ワードプレ外のファイルに以下のようなソースを埋め込む必要があります。

    
    <?php
    require_once('./ワードプレスのフォルダ/wp-load.php');
    mb_http_output("utf-8");//環境にり文字コードを変更して
    ob_start("mb_output_handler");
    ?>
    
    
    <?php
    /* ページ全部を読み込む */
    string file_get_contents( string filename [, bool use_include_path ] )
    $foodlink = file_get_contents('http://hoge/xxxxx/index.php');
    echo $foodlink;
    ?>
    

    など、特別な処理をしなくてはいけません。

    もしかして、ワードプレスの外にhtmlソースが吐き出されています?
    調べるには、URLで判別できると思います。
    管理ページのURLと実際のURLを比較してみてください。

    下記のみでした、function.phpのソースをすべて張ることにセキュリティや個人情報上問題がなければすべて張り付ける事も可能です。


    // Load custom DB error template, if present.
    if ( file_exists( WP_CONTENT_DIR . ‘/db-error.php’ ) ) {
    require_once( WP_CONTENT_DIR . ‘/db-error.php’ );
    die();
    }


    if ( in_array( $call[‘function’], array( ‘do_action’, ‘apply_filters’ ) ) ) {
    $caller[] = “{$call[‘function’]}(‘{$call[‘args’][0]}’)”;
    } elseif ( in_array( $call[‘function’], array( ‘include’, ‘include_once’, ‘require’, ‘require_once’ ) ) ) {
    $caller[] = $call[‘function’] . “(‘” . str_replace( array( WP_CONTENT_DIR, ABSPATH ) , ”, $call[‘args’][0] ) . “‘)”;
    } else {
    $caller[] = $call[‘function’];


    require_once( ABSPATH . WPINC . ‘/default-widgets.php’ );

    nodeに–inspect(デバッグする)と–debug-brk(最初に止まる)をつけて起動する。
    node –inspect –debug-brk hoge.js

    100自分でコーディングしたhtmlを自分で分割して、index.phpのカレントディレクトリにheaderなどのphpファイルを置いているだけです。

    インストール自体は簡単インストールしかできないので lv9の簡単インストールを使っています。

    初心者なのでその他の設定はわからないのでほぼ何もやっていません。

    gblsm

    (@gblsm)

    長いコードは直接貼り付けず、代わりに pastebin サイトなどに公開して、フォーラムへはリンクを貼り付けるのが良いと思います。

    https://pastebin.com

    • この返信は5 ヶ月前に  gblsm さんが編集しました。
    wordfile

    (@wordfile)

    codepenなどを使わないといけないという事でしょうか?
    こちらのサイトにはそのような機能はないのですか?

    gblsm

    (@gblsm)

    codepenなどを使わないといけないという事でしょうか?
    こちらのサイトにはそのような機能はないのですか?

    コードを貼るための特別な機能はありませんが
    短いコードでしたら、トピックのこの入力欄に貼ったコードを文字列選択して code ボタンで囲めば(バッククォートで囲まれる)、化けずに表示してくれます。
    しかし codepen や pastebin のような機能はありません。

    wordfile

    (@wordfile)

    別質問にしました。

    wordfile

    (@wordfile)

    navigationをインクルードすると、Sample Page と出てきます。

    FFFTP上の情報ですが、
    my-corpolateの中にすべてのphp(htmlファイルの事)、index.php、navigation.php、header.phpなどがあります。

    /htdocs/wp/wp-content/themes/my-corpolate

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • このトピックに返信するにはログインが必要です。