フォーラムへの返信
-
投稿者投稿
-
的外れだったらすみません。
セキュリティプラグイン等で、REST API をブロックしていませんか?https://example.com/wp-json/snow-monkey-forms/v1/forms(example.com は自分のサイトのドメインに置き換え)
→ JSON が返ればOK。
→ HTMLや403/404が返る場合は REST API がブロックされている可能性があります。♥ 0Who liked: No user3 の方法を試してみてください。
♥ 0Who liked: No userヘッダー位置の設定がオーバレイ(上部固定)で、アイキャッチ画像を設定していないのが原因だと思います。
対応方法はいくつかあります。- 各投稿にアイキャッチ画像を設定する。
- 投稿のシングルページを開いた状態でカスタマイザーを開いて「投稿ページ設定」のアイキャッチ画像の位置を「ページヘッダーの上にタイトルを表示」に変更する。
- My Snow Monkey に以下のコードを追加して投稿ページのヘッダー位置を変更する。
/** * シングルページでのヘッダー位置をカスタマイズ * * @param string $value ヘッダー位置の値. * sticky : 上部固定 * sticky-overlay : オーバレイ(上部固定) * sticky-overlay-colored : オーバーレイ(上部固定 / スクロール時背景白) * overlay : オーバレイ * '' : ノーマル * @return string 投稿のシングルページの場合は 'sticky' を、それ以外は元の値を返す。 */ add_filter( 'theme_mod_header-position', function ( $value ) { if ( is_single() ) { return 'sticky'; } return $value; }, 10, 1 );アイキャッチ画像を設定しないのなら、2か3の方法を試してみてください。
固定ページなので、
post=46じゃなくてpage_id=46だと思うんですが、/wp-json/wp/v2/pagesで見ると商品紹介ページはpage_id=38です。
https://nokanoka.jp/?page_id=38page_id=46は、商品一覧のページのようです。
https://nokanoka.jp/?page_id=46すみません。上のウィジェットは、サイドバーがあると全幅にならないですね。
「個別投稿(記事)ページ上部」にウィジェットを表示したい のコードを以下のように修正してください。
### ウィジェットエリアを定義
add_action( 'widgets_init', function () { register_sidebar( array( 'name' => '個別投稿の上部のサイドバー', 'id' => 'my-single-top-sidebar', // ウィジェットエリアの名前 'before_widget' => '<div id="%1$s" class="c-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="c-widget__title">', 'after_title' => '</h2>', ) ); register_sidebar( array( 'name' => 'アーカイブページ上部のサイドバー', 'id' => 'my-archive-top-sidebar', // ウィジェットエリアの名前 'description' => 'カテゴリー、タグ、日付アーカイブページの上部に表示されるウィジェットエリア', 'before_widget' => '<div id="%1$s" class="c-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="c-widget__title">', 'after_title' => '</h2>', ) ); } );### ウィジェットエリアを表示
add_action( 'snow_monkey_before_contents_inner', function () { // 個別投稿の場合 if ( is_single() ) { // my-single-top-sidebar ウィジェットエリアを表示 dynamic_sidebar( 'my-single-top-sidebar' ); } // アーカイブページまたは投稿一覧ページの場合 if ( is_archive() || is_home() ) { // my-archive-top-sidebar ウィジェットエリアを表示 dynamic_sidebar( 'my-archive-top-sidebar' ); } } );投稿一覧ページは「投稿ページ上部」、それ以外のアーカイブページは「アーカイブページ上部」のウィジェットがあるので、使用してみてください。
♥ 0Who liked: No userコンテンツの最大幅550pxだと、参考サイトのように文字サイズの調整をしないと窮屈になるので、自分だったらコンテンツの最大幅はリセットして、「コンテンツの幅をスリム幅にする」の方を使うと思います。
♥ 0Who liked: No userdrop-nav.js の
window.addEventListener("resize:width", (() => n()), !1);が原因のようです。
n()はaria-hiddenを"true"にしてhideDropNavイベント飛ばしてるので幅が変わるたびに非表示になる。♥ 0Who liked: No userドロップナビが表示されている状態で、windowのリサイズをすると
<div class="l-header__drop-nav" aria-hidden="true">になるので、ドロップナビは表示されなくなります。
そのまま下にスクロールしてもドロップナビは表示されませんが、一旦ページ最上部まで戻ってからスクロールするとドロップナビが表示されるようです。♥ 0Who liked: No user「カスタマイズ」 > 「デザイン」 > 「ヘッダー」で、一番下にある「ドロップナビゲーションにサイトロゴを表示する」にチェックを入れてみてください。
テーマのアップデートをして確認してみました。
前提条件として関連投稿に表示されるのは「同一のタクソノミーの記事」なので
$args['vars']['_posts_query']->set( 'tax_query', false );
の条件を追加しないと「同一のタクソノミーの記事が無い場合」は何も表示されない。上記を踏まえて、以下のコードで思った通りの表示になりました。
<?php /** * 関連記事のクエリをカスタマイズ * * @package my-snow-monkey+ */ /** * 関連記事の取得クエリを操作する * * @param array $args テンプレート取得クエリ. * @return array テンプレート取得クエリ. */ add_filter( 'snow_monkey_get_template_part_args_template-parts/content/related-posts', function ( $args ) { $_post_type = get_post_type(); if ( 'post' === $_post_type || 'works-and-voices' === $_post_type ) { $args['vars']['_entries_layout'] = 'simple'; } if ( 'interview' === $args['name'] ) { $args['vars']['_entries_layout'] = 'carousel'; $args['vars']['_title'] = '他の社員を見る'; $args['vars']['_posts_query']->set( 'tax_query', false ); $args['vars']['_posts_query']->set( 'posts_per_page', 10 ); $args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars ); } if ( 'job-posts' === $args['name'] ) { $args['vars']['_entries_layout'] = 'rich-media'; $args['vars']['_title'] = '他の募集を見る'; // $args['vars']['_posts_query']->set( 'tax_query', false ); $args['vars']['_posts_query']->set( 'posts_per_page', 3 ); $args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars ); // 関連投稿が見つからない場合、または3件未満の場合のフォールバック処理 if ( $args['vars']['_posts_query']->found_posts < 3 ) { $current_post_id = get_the_ID(); if ( ! $current_post_id ) { global $post; $current_post_id = $post ? $post->ID : 0; } $args['vars']['_posts_query'] = new WP_Query( array( 'post_type' => 'job-posts', 'posts_per_page' => 3, 'post__not_in' => array( $current_post_id ), ) ); } } return $args; } );他の方の参考になると思うので、フォールバック処理の判定条件を追記しておきます。
(表示件数は、デフォルトのままの4件表示の場合)// 1: シンプルに件数のみで判定。4件未満は全てフォールバック処理するので、常に4件表示される。 if ( $args['vars']['_posts_query']->found_posts < 4 ) { // 2: 0件の時にだけフォールバック処理。1件~3件の時はそのまま表示。 if ( ! $args['vars']['_posts_query']->have_posts() && $args['vars']['_posts_query']->found_posts < 4 ) { -
投稿者投稿

