[ 解決済 ] 【機能追加要望】各カテゴリ上部に「投稿ループ前ウィジェットエリア」の内容を反映させたい

VWSとは フォーラム Lightning [ 解決済 ] 【機能追加要望】各カテゴリ上部に「投稿ループ前ウィジェットエリア」の内容を反映させたい

[ 解決済 ] 【機能追加要望】各カテゴリ上部に「投稿ループ前ウィジェットエリア」の内容を反映させたい

  • このトピックには2件の返信、2人の参加者があり、最後にWEB001により4分前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #103000

    WEB001
    参加者

    ■ 期待する動作
    ■背景
    現在、ブログ(投稿)で「お知らせ」「お役立ち情報」「〇〇について」など複数のカテゴリを作っています。

    「設定」「表示設定」の投稿ページは「未選択」にしています。

    *固定ページで作った「投稿表示用ページ」に選択にすると「そのページ」のみ「投稿ループ前ウィジェットエリア」の内容が反映させます。

    ■実現したいこと
    各カテゴリの上に「投稿ループ前ウィジェットエリア」の内容を反映させたい
    「お知らせ一覧」や「お役立ち情報」のアーカイブページ上部のことです。
    *反映させる内容は同じ内容で大丈夫です。

    これらが実現できる機能(外観>カスタマイズ)または新規ウィジェットが欲しい。

    ■ 自分で試した事
    ■以下のページも確認して実行しましたが各カテゴリページには反映されませんでした。

    投稿ループ前にウィジェットエリア追加

    ■カスタム投稿は別に使用する予定なので、現在のブログ(投稿)をカスタム投稿にはしたくない。

    ■ その他特記事項
    要望としてあげていますが、カスタマイズすることで実現できるのであれば教えていただきたいです。
    よろしくお願いします。

    Attachments:
    You must be logged in to view attached files.
    #103082

    たぶんこれで…

    use VektorInc\VK_Helpers\VkHelpers;
    
    function my_loop_before_widget_run() {
    	$loop_action_point = veu_get_loop_before_widget_action_point();
    	add_action( $loop_action_point, 'my_display_archive_loop_before_widget_area' );
    }
    add_action( 'after_setup_theme', 'my_loop_before_widget_run' );
    
    function my_display_archive_loop_before_widget_area( $query ) {
    
    	// 投稿タイプアーカイブは ExUnit で出力してるので除外
    	if ( is_post_type_archive() ) {
    		return;
    	}
    	// トップページは除外
    	if ( is_home() || is_front_page() ) {
    		return;
    	}
    
    	// メインクエリ以外の場所は除外
    	if ( veu_get_loop_before_widget_action_point() === 'loop_start' ) {
    		// $loop_action_point を loop_start にする場合メインクエリ以外の場所に出ないように終了
    		if ( ! $query->is_main_query() ) {
    			return;
    		}
    	}
    
    	global $wp_query;
    
    	if ( ! empty( $wp_query->posts ) ) {
    		// 2ページ目以外は非表示
    		if ( get_query_var( 'paged', 0 ) !== 0 ) {
    			return;
    		}
    	}
    
    	$vk_helpers     = new VkHelpers();
    	// 投稿タイプ情報を取得
    	$post_type_info = $vk_helpers->get_post_type_info();
    	$widget_area    = $post_type_info['slug'] . '-archive-loop-before';
    
    	// ウィジェットを表示
    	if ( is_active_sidebar( $widget_area ) ) {
    		dynamic_sidebar( $widget_area );
    	}
    }
    #103083

    WEB001
    参加者

    ありがとうございます!
    頂いたコードで実現できました。
    感謝申し上げます。
    ありがとうございました。
    m(__)m

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