-
投稿者投稿
-
2020年7月14日 3:27 PM #54014
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】10.10.7
【お使いのブラウザ】Chrome,safari,firefox
【当該サイトのURL】ローカルのテスト環境で作成中
===もし下記のようなカスタマイズが可能ならば、実現したいと思っています。
【サイト設定の状態】
(1)ホームページ設定にて、トップページは固定ページを割り当てて、投稿ページトップは「https://xxxxx.com/blog/」となるように設定。(2)プラグイン CPT UI にて、カスタムポストタイプ、カスタムタクソノミーを設定。製品情報をアップしていくのに利用する。
(3)投稿のパーマリンク設定
カスタム構造して、「/blog/%postname%/」と入力【やりたいこと】
下記のページの場合に、通常設定(管理画面・カスタマイザーでの設定)とは別の「グローバルナビゲーション(PC用)、 ドロワーナビゲーション(モバイル用)、ロゴ」を表示したい(差し替えたい)と思っています。(該当ページ)
・投稿ページトップ(アーカイブページ) https://xxxxx.com/blog/
・投稿の個別ページ https://xxxxx.com/blog/記事のスラッグ/
・カテゴリ、タグなどのアーカイブページ https://xxxxx.com/blog/category/カテゴリー名スラッグ/、https://xxxxx.com/blog/tag/タグ名スラッグ/
※
投稿に関連するページです。※
管理画面 → メニュー にて2つのメニューを作成。1つは通常どおり、グローバルナビゲーション(PC用)、 ドロワーナビゲーション(モバイル用)にチェックを入れる。もう1つは差し替え用のメニューとしてつくり、チェックは入れない。※ロゴ画像も2種類用意。1つはカスタマイザーにて設定。もう1つは差し替え用として、メディアにアップロードしておく。
【カスタマイズしたい理由】
トップページ、固定ページ、カスタムポストタイプ関連のページは、コーポレートサイトとして運用し、投稿ページはオウンドメディア(ブログ)として運用したい。そこで、オウンドメディア(ブログ)部分は、ブログのカテゴリなどをグローバルメニューに表示して、ロゴも別のものを表示したい。
以上、
説明が分かりにくいかもしれませんが、もしできそうならば、カスタマイズ方法をご教示いただけたら嬉しいです!
♥ 0いいねをした人: 居ません2020年7月15日 1:54 PM #54097下記のような感じで差し替えできるとは思いますが、複雑になるので、個人的にはそれぞれ別に WordPress を立てたほうが良いんじゃないかなぁと感じました。
メニューの差し替え
add_filter( 'wp_nav_menu_args', function( $args ) { if ( is_home() ) { // 差し替え条件 if ('global-nav' === $args['theme_location']) { // どのナビゲーションを差し替えるか $args['menu'] = 'Testing Menu'; // メニュー管理画面で入力した名前 } } return $args; } );
ロゴ差し替え
add_filter( 'get_custom_logo', function( $html ) { if ( is_home() ) { // 差し替え条件 $html = preg_replace( '|<img .+? />|', '<img class="custom-logo" src="" />', // 表示したい img タグ $html ); } return $html; } );
♥ 0いいねをした人: 居ません2020年7月16日 4:17 PM #54168ご回答ありがとうございます。
グローバルメニューとドロワーメニューについては、教えていただいたコードをもとに、下記のコードを書いたら無理やりながら差し替えることができました。(書き方がおかしいとは思いますが・・・)
/** * 投稿ページ関連(投稿ページトップ、カテゴリーアーカイブ・タグアーカイブ・個別記事ページ)のメニューを差し替える */ add_filter( 'wp_nav_menu_args', function( $args ) { if ( is_single() || is_home() || is_category() || is_tag()) { // 差し替え条件 if ('global-nav' === $args['theme_location'] || 'drawer-nav' === $args['theme_location']) { // どのナビゲーションを差し替えるか $args['menu'] = 'hedder-sub-navi'; // メニュー管理画面で入力した名前 } } return $args; } ); add_filter(//上記条件では個別記事にカスタム投稿ページが含まれるので、カスタム投稿ページでは元に戻す 'wp_nav_menu_args', function( $args ) { if ( get_post_type() === 'product') { // 差し替え条件 (カスタムポストタイプがproductのとき) if ('global-nav' === $args['theme_location'] || 'drawer-nav' === $args['theme_location']) { // どのナビゲーションを差し替えるか $args['menu'] = 'gloval-navi'; // メニュー管理画面で入力した名前 } } return $args; } );
ロゴについては、差し替えはできたものの、それぞれのロゴのサイズ調整が難しいなぁというのもありまして、悩ましく思っております ^^;(笑)
メニューの差し替えについてもメニューのキャッシュを使うと、うまく動かないなどあるので、確かにキタジマさんのいう通り、複雑な感じですね・・・
別のワードプレスを立てるか、オウンドメディア(ブログ)ページのカテゴリ表示などの見せ方でより良い方法がないかちょっと考えてみることとします!
ちなみに今回メニューの出し分けで条件を書くときに、
is_single()
に通常の投稿と、カスタム投稿の両方が含まれてしまうようだったので、あとからカスタム投稿タイプだけ除くような処理にしました。
(いろいろと調べたのですが、よく分からず・・・)なんか無理やりな書き方だな・・・と思ったのですが、今回の条件を1つの条件式だけで書く方法はあるのでしょうか?
Snow Monkey とは関係ない質問で申し訳ありません・・・
♥ 0いいねをした人: 居ません2020年7月17日 9:40 AM #54194メニューの差し替えについてもメニューのキャッシュを使うと、うまく動かないなどあるので、確かにキタジマさんのいう通り、複雑な感じですね・・・
一度表示したメニューがキャッシュされるので、次回表示時からはフックを通らなくなるんですよね。
ちなみに今回メニューの出し分けで条件を書くときに、is_single()に通常の投稿と、カスタム投稿の両方が含まれてしまうようだったので、あとからカスタム投稿タイプだけ除くような処理にしました。
is_single()
じゃなくてis_singular( 'product' )
のようにするとproduct
の個別ページに限定できます!♥ 0いいねをした人: 居ません2020年7月17日 3:40 PM #54231is_single() じゃなくて is_singular( ‘product’ ) のようにすると product の個別ページに限定できます!
なるほど。いろいろな書き方がありますね〜。いろいろ調べてチャレンジしてみます。
方法は理解しましたので、このトピックは閉じておきます。
ありがとうございました!♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「投稿関連ページの、グローバルナビゲーション(PC用)、 ドロワーナビゲーション(モバイル用)、ロゴを差し替えたい」には新しい返信をつけることはできません。