[ 解決済 ] カスタム投稿タイプのアーカイブページにメタディスクリプションを設定したい

VWSとは フォーラム All in One Expansion Unit [ 解決済 ] カスタム投稿タイプのアーカイブページにメタディスクリプションを設定したい

[ 解決済 ] カスタム投稿タイプのアーカイブページにメタディスクリプションを設定したい

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

    tack
    参加者

    ■ WordPress のバージョン
    5.8.2

    ■ テーマ・プラグインは全て最新版で確認してください。
    確認しました。

    ■ テーマの種類
    Lightning ( G3 ) + Lightning G3 Pro Unit

    ■ テーマのバージョン
    14.11.12

    ■ Pro Unit のバージョン
    0.12.2

    ■ スキンの種類
    Origin III

    ■ 関連しそうなプラグインを一つづつ停止して症状が改善するか確認してください。
    確認しました。

    ■ 期待する動作
    カスタム投稿タイプのアーカイブページにメタディスクリプションを設定したいです。
    「Custom Post Type UI」プラグインで作成して、カスタム投稿タイプで説明を入力できる欄があるので、そこの内容をメタディスクリプションに出力したいです。

    vkExUnitのカスタム投稿タイプ作成機能では説明を入力するところが無かったり機能が足りないため、「CPT UI」を利用したいです。

    ■ 自分で試した事
    アーカイブページにディスクリプションを設定できるプラグインなどを探してみましたが、All in One Seoしか見つかりませんでした。ただこちらのプラグインは多機能&強力過ぎて利用が難しい状況です。
    AinSeoなしでできればやりたいと思っています。

    また、フックでできないかと調べてみたのですが、私の能力不足のためわかりませんでした。
    vk-all-in-one-expansion-unit/inc/meta-description.phpの中で、
    12行目 get_post_types( array( ‘public’ => true ) );
    のページにのみメタディスクリプションを出力しているようだ、とは分かったのですが。

    ■ 症状が発生するブラウザ

    ■ 実際の症状

    ■ その他特記事項

    #58715

    ExUnit が出力する description タグは以下のようなコードで変更になります。

    add_filter(
    	'vk_get_page_description',
    	function( $description ) {
    		$post_type_descriptions = array(
    			'post'  => '投稿のディスクリプション',
    			'event' => 'イベントのディスクリプション',
    		);
    		foreach ( $post_type_descriptions as $post_type => $archive_description ) {
    			if ( is_post_type_archive( $post_type ) ) {
    				$description = $archive_description;
    			}
    		}
    		return $description;
    	}
    );
    #58761

    ↑ のコードだと投稿(post)が書き換わらないので修正版です。
         ※↑のコードのままでも投稿トップに指定した固定ページの抜粋に入力すればその内容がディスクリプションに反映されます。

    add_filter(
    	'vk_get_page_description',
    	function( $description ) {
    		$post_type_descriptions = array(
    			'post'  => 'フックで変更した投稿のディスクリプション',
    			'event' => 'フックで変更したイベントのディスクリプション',
    		);
    		foreach ( $post_type_descriptions as $post_type => $archive_description ) {
    			if ( 'post' === $post_type && is_home() && ! is_front_page() ){
    				$description = $archive_description;
    			} else{
    				if ( is_post_type_archive( $post_type ) ) {
    					$description = $archive_description;
    				}
    			}
    		}
    		return $description;
    	}
    );
    #58824

    tack
    参加者

    ありがとうございます。
    「CPT UI」の説明部分はget_queried_object()->descriptionで取得できたので、上記ソースを書き換えて、無事できました。ありがとうございます。

    質問があるのですが
    「※↑のコードのままでも投稿トップに指定した固定ページの抜粋に入力すればその内容がディスクリプションに反映されます。」
    とおっしゃっておりますが、これはvkExUnitでカスタム投稿タイプを作成して、ウィジェットで投稿アーカイブページに固定ページを表示する機能を使った際に、そうなる機能があるとのことでしょうか?
    「投稿トップに指定した固定ページ」の意味が解釈できていません。

    #58841

    「投稿トップに指定した固定ページ」は、設定 > 表示設定 で投稿のトップに指定した固定ページ の事です。
    この固定ページの抜粋に入力した内容が、description に通常反映されます。これは ExUnit のディスクリプション機能の仕様です。

    カスタム投稿タイプではそういった機能は存在しないので、現状では上記のコードのような個別のカスタマイズが必要という状態です。

    #58845

    tack
    参加者

    ありがとうございます。よくわかりました。

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