[ 解決済 ] アーカブページの選択方法

VWSとは フォーラム バグ報告と提案 [ 解決済 ] アーカブページの選択方法

[ 解決済 ] アーカブページの選択方法

  • このトピックには16件の返信、2人の参加者があり、最後にkomori0321により3年、 3ヶ月前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全17件中)
  • 投稿者
    投稿
  • #45153

    komori0321
    参加者

    ■ 利用テーマとバージョン :
    WordPress 5.5.3
    Lightning Proバージョン: 8.1.1
    VK All in One Expansion Unitバージョン 9.48.1.0
    VK Blocks Pro
    バージョン 0.57.2
    ■ 質問内容:
    いつもお世話になります
    アーカイブウィジェットがドロップダウンに対応
    になり非常に使いやすくなり使用させていただいています
    そこで、アーカブページを表示後、アーカブページ内メインフレームの上部に(選択年・月表示のところ)に”vkアーカブリスト”同様の機能があれば選択の年・月の変更が容易になり、使いやすくなるとの意見をいただいています。可能でしょうか?
    追加cssでも可能でしたらご教授願えればと思います
    いつもすみませんよろしくお願いいたします


    該当URL : https://*********

    ※該当URLはフォーラムライセンスが有効のユーザーにのみ表示されます

    #45214

    サイドバーのウィジェットエリアに配置して、アーカイブページを2カラムにしてサイドバーに、あるいは1カラムにして記事一覧の下に表示だとまずいでしょうか?

    通常一般的には 最新記事 と 過去記事の年別での表示 だと 最新記事の方が優先順位が高いため、年別あるいは月別のドロップダウンが記事一覧より先にあるのはかなりイレギュラーなケースではないかなと思います。

    あるいは年別月別のではなく、カテゴリーの絞り込み検索の方が需要は高いのではないでしょうか?

    それでしたら最近公開したプラグイン VK Filter Search で可能です。

    VK Filter Search – 絞り込み検索プラグイン –

    #45221

    komori0321
    参加者

    いつもお世話になります。
    すみません。書き方がまずかったのですが、絞り込みは特に必要ないです

    年か月かどちらか選択(弊社の場合年のみ)でいいのですが、アーカブページのメインフレームの上部に設置したいです。
    サイドバーでの設置だと現状と変わらないので?….
    カテゴリーの絞り込みならメインフレームの最上部の設置可能ですか?
    (アーカブページの編集の方法がわからなくて..)

    アーカイブウィジェットがドロップダウンをアーカブページのメインフレーム最上部に設置する方法があれば教えていただければ嬉しいです
    ひと手間で設置できればの要望です。いろいろ修正を伴う場合は却下していただいて問題ないです
    ただ、あれば使い勝手がいいかなー と思いまして・・ すみませんその程度です..

    • この返信は3年、 3ヶ月前にkomori0321が編集しました。
    #45382

    おそらく 子テーマの functions.php などに以下を追加すれば投稿タイプアーカイブの上部にウィジェットエリアが現れるはずです。

    function my_set_archive_loop_before_widget_area(){
    
        // 公開されている投稿タイプを呼び出し
        $postTypes = get_post_types( array( 'public' => true ) );
        // 固定ページはアーカイブないので削除
        unset( $postTypes['page'] );
    
        foreach ( $postTypes as $postType ) {
    
            // Get post type name
            /*-------------------------------------------*/
            $post_type_object = get_post_type_object( $postType );
            if ( $post_type_object ) {
    
                // Set post type name
                $postType_name = esc_html( $post_type_object->labels->name );
    
                // Set post type widget area
                register_sidebar(
                    array(
                        'name'          => sprintf( __( 'Archive page loop before (%s)', 'lightning-pro' ), $postType_name ),
                        'id'            => $postType . '-archive-loop-before',
                        'description'   => '',
                        'before_widget' => '<aside class="widget %2$s" id="%1$s">',
                        'after_widget'  => '</aside>',
                        'before_title'  => '<h2 class="widget-title">',
                        'after_title'   => '</h2>',
                    )
                );
            } // if( $post_type_object ){
    
        } // foreach ($postTypes as $postType) {
    
    }
    add_action( 'widgets_init', 'my_set_archive_loop_before_widget_area' );
    
    function my_display_archive_loop_before_widget_area( $query ){
    
        if ( ! is_post_type_archive() ){
            return;
        }
    
        // $loop_action_point を loop_start にする場合
        // if ( ! $query->is_main_query() ) {
        //     return;
        // }
    
        global $wp_query;
    
    	if ( ! empty( $wp_query->query_vars['post_type'] ) ) {
            $post_type = $wp_query->query_vars['post_type'];
    
            if ( ! empty( $wp_query->posts ) ){
                // 2ページ目以外は非表示
                if ( get_query_var( 'paged', 0 ) !== 0 ){
                    return;
                }
            }
    
            // ※ get_post_type() は該当記事がない場合に投稿タイプが取得できないため
            $widget_area = $post_type . '-archive-loop-before';
            if ( is_active_sidebar( $widget_area ) ) {
                dynamic_sidebar( $widget_area );
            }
    	}
    }
    // Lightningの場合
    $loop_action_point = 'lightning_loop_before';
    // // Katawaraの場合
    // $loop_action_point = 'katawara_loop_before';
    // // その他のテーマの場合(該当記事が0件の場合は表示されません)
    // $loop_action_point = 'loop_start';
    add_action( $loop_action_point, 'my_display_archive_loop_before_widget_area' );
    #45405

    komori0321
    参加者

    石川様
    お世話になります
    いつも丁寧な対応ありがとうございます

    ご教示いただいた内容で試してみます
    結果 報告します
    よろしくお願いします

    #45407

    komori0321
    参加者

    石川様

    お世話になります
    子テーマの functions.php にご教授いただいたPHPを追加しました
    ・外観→ウィジェットに
    Archve page loop before(投稿)
    Archve page loop before(メディア)
    が現れました
    どちらにも”VKアーカブリスト”を追加しましたが
    ページに反映されません
    何度もすみませんよろしくお願いいたします

    #45415

    すみません、カスタム投稿なら問題なかったのですが、通常の投稿だと先のコードだとダメでした。

    以下で確認ください。

    function my_set_archive_loop_before_widget_area(){
    
        // 公開されている投稿タイプを呼び出し
        $postTypes = get_post_types( array( 'public' => true ) );
        // 固定ページはアーカイブないので削除
        unset( $postTypes['page'] );
    
        foreach ( $postTypes as $postType ) {
    
            // Get post type name
            /*-------------------------------------------*/
            $post_type_object = get_post_type_object( $postType );
            if ( $post_type_object ) {
    
                // Set post type name
                $postType_name = esc_html( $post_type_object->labels->name );
    
                // Set post type widget area
                register_sidebar(
                    array(
                        'name'          => sprintf( __( 'Archive page loop before (%s)', 'lightning-pro' ), $postType_name ),
                        'id'            => $postType . '-archive-loop-before',
                        'description'   => '',
                        'before_widget' => '<aside class="widget %2$s" id="%1$s">',
                        'after_widget'  => '</aside>',
                        'before_title'  => '<h2 class="widget-title">',
                        'after_title'   => '</h2>',
                    )
                );
            } // if( $post_type_object ){
    
        } // foreach ($postTypes as $postType) {
    
    }
    add_action( 'widgets_init', 'my_set_archive_loop_before_widget_area' );
    
    function my_display_archive_loop_before_widget_area( $query ){
    
        // $loop_action_point を loop_start にする場合
        // if ( ! $query->is_main_query() ) {
        //     return;
        // }
    
        if ( ! is_post_type_archive() && ! is_home() && ! is_front_page() ){
            return;
        }
    
        if ( is_home() ){
            $post_type = 'post';
        }
    
        global $wp_query;
    
        if ( ! empty( $wp_query->query_vars['post_type'] ) ){
            $post_type = $wp_query->query_vars['post_type'];
        }
    
        if ( empty ( $post_type ) ) {
            return;
        }
    
        if ( ! empty( $wp_query->posts ) ){
            // 2ページ目以外は非表示
            if ( get_query_var( 'paged', 0 ) !== 0 ){
                return;
            }
        }
    
        // ※ get_post_type() は該当記事がない場合に投稿タイプが取得できないため
        $widget_area = $post_type . '-archive-loop-before';
        if ( is_active_sidebar( $widget_area ) ) {
            dynamic_sidebar( $widget_area );
        }
    
    }
    // Lightningの場合
    $loop_action_point = 'lightning_loop_before';
    // // Katawaraの場合
    // $loop_action_point = 'katawara_loop_before';
    // // その他のテーマの場合(該当記事が0件の場合は表示されません)
    // $loop_action_point = 'loop_start';
    add_action( $loop_action_point, 'my_display_archive_loop_before_widget_area' );
    #45416

    komori0321
    参加者

    石川様

    お世話になります
    phpの修正版をそのままコピーペしました
    状況に変化ありません。
    前回同様に
    ウィジエットは現れますが、VKアーカブ
    をセットしても反映されません

    また、ieでページヘッター画像を表示させるため、うなこ様にご教授いただいた下記cssを追記していますが
    >@media all and (-ms-high-contrast:none){
    > *::-ms-backdrop, .page-header { background: url(○○.jpg) no-repeat center; }
    >}
    保証外のieだけなのですが
    添付ファイルのようになります

    何度もすみません よろしくおお願いします

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

    komori0321
    参加者

    石川様

    お世話になります
    すみません。確認が不十分でした
    アーカブページのTOPにはVKアーカブが表示されています
    そこで一度選択して表示すると、VKアーカブは消えてしますます
    ですので、再選択しようとしたとき、その画面から再選択できません
    できたら、選択後も選択を変更できるようにが希望なのですが
    説明不足ですもません
    可能でしょうか?

    #45844
        if ( ! is_post_type_archive() && ! is_home() && ! is_front_page() ){
            return;
        }

        if ( ! is_archive() && ! is_home() && ! is_front_page() ){
            return;
        }

    に変更してみてください。

    #45858

    komori0321
    参加者

    石川様

    お世話になります
    ”ExUnit 9.49.xで 投稿タイプアーカイブページで記事一覧の上部にウィジェットエリアを追加できるようになりました”
    ➡とのことでしたので、これを利用したのですが、同じようになりました
    これを利用した場合、ご教授いただいた変更はどのようにphpに追加すればよろしいですか?

    よろしくお願いします

    #45861

    ExUnitの機能では投稿タイプアーカイブトップにしかできず、
    今回追加で要望いただいた件には対応できませんので、
    ExUnitの機能は停止して、元々のコードの

        if ( ! is_post_type_archive() && ! is_home() && ! is_front_page() ){
            return;
        }

        if ( ! is_archive() && ! is_home() && ! is_front_page() ){
            return;
        }

    に変更してみてください。

    #45865

    komori0321
    参加者

    石川様

    お世話になります
    ExUnitの機能は停止して
    いただいたphpを張り付け
    今回の修正分を修正しましたが
    状況は変化なく、投稿タイプアーカイブトップには現れますが
    次のページで表示されなくなります
    取り急ぎ報告です
    よろしくお願いします

    #45867

    ご確認ありがとうございます。
    下記も削除してください。

            if ( ! empty( $wp_query->posts ) ){
                // 2ページ目以外は非表示
                if ( get_query_var( 'paged', 0 ) !== 0 ){
                    return;
                }
            }

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

    #45871

    komori0321
    参加者

    石川様

    お手数をおかけします
    対象部分を削除しましたが
    状況に変化ありません

    よろしくお願いします

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