固定ページ上部へのウィジェット表示について

0
いいねをした人: 居ません
  • このトピックには2件の返信、2人の参加者があり、最後にharuakiにより5年、 2ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #10120
    haruaki
    閲覧者
    0

    いつも利用させていただいております。

    表題の通り、固定ページ上部へウィジェットを設置し、ショーケースにてページヘッダー要素を追加したいと思いフロントページへの表示するウィジェットのコードを変更し子テーマにてウィジェットエリアの作成を行なったのですが、

    表示はどのphpファイルに設置したらよいでしょうか。
    恐れ入りますがご教授願えますと幸いです。

    何卒よろしくお願いいたします。

    /**
     * Add front page widget area
     *
     * @return void
     */
    add_action(
        'widgets_init',
        function() {
            register_sidebar(
                [
                    'name'          => __( '固定ページ上部' ),
                    'id'            => 'page-top-widget-area',
                    'description'   => __( '固定ページ上部に表示されます' ),
                    'before_widget' => '<div class="l-front-page-widget-area__item"><div id="%1$s" class="c-section %2$s">',
                    'after_widget'  => '</div></div>',
                    'before_title'  => '<h2 class="c-section__title">',
                    'after_title'   => '</h2>',
                ]
            );
            
            add_filter(
                'dynamic_sidebar_params',
                function( $params ) {
                    if ( 'page-top-widget-area' !== $params[0]['id'] ) {
                        return $params;
                    }
                    
                    $wp_page_template = get_post_meta( get_the_ID(), '_wp_page_template', true );
                    if ( ! $wp_page_template || 'default' === $wp_page_template || false !== strpos( $wp_page_template, 'one-column-full.php' ) ) {
                        $params[0]['before_widget'] .= '<div class="c-container">';
                        $params[0]['after_widget'] .= '</div>';
                    }
                    return $params;
                }
            );
        }
    );
    0
    いいねをした人: 居ません
    #10171
    キタジマ タカシ
    参加者
    2244

    まず、ウィジェットエリアを表示するためのテンプレートパーツをつくらないといけません。どこにつくってもいいのですが、例えば「子テーマ/template-parts/page-top-widget-area.php」としましょうか。

    <?php
    $sidebar_id = 'page-top-widget-area';
    
    if ( ! is_active_sidebar( $sidebar_id ) || ! is_registered_sidebar( $sidebar_id ) ) {
        return;
    }
    ?>
    
    <div class="l-front-page-widget-area"
        data-is-slim-widget-area="false"
        data-is-content-widget-area="true"
        >
    
        <?php dynamic_sidebar( $sidebar_id ); ?>
    </div>

    そして、具体的にどこに表示するかにもよりますが、ページヘッダーとして、ということですので、「templates/wrapper/」の中にあるファイルからカスタマイズしたいファイルを子テーマにコピーし、ページヘッダーの上にウィジェットエリアを表示するテンプレートを呼び出すように追加してみるとどうでしょうか。

    // 下記の行を追加
    Helper::get_template_part( 'template-parts/page-top-widget-area' );
    
    // 下記はもともとあるコード
    if ( Helper::is_output_page_header() ) {
        Helper::get_template_part( 'template-parts/common/page-header' );
    }

    ただ、「templates/wrapper/」の中のファイルはそれなりに大きいファイルになり、アップデートの際に後方互換性の問題がでる可能性が他のファイルの上書きよりも大きいと思います。アップデートの際はご注意ください。

    0
    いいねをした人: 居ません
    #10205
    haruaki
    閲覧者
    0

    ご回答誠にありがとうございます。
    上記の方法で試させていただきます。

    アップデート時は変更確認の上行うようにいたしますね。
    今後ともよろしくお願いいたします。

    0
    いいねをした人: 居ません
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • トピック「固定ページ上部へのウィジェット表示について」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。