Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

カスタム投稿のOGPタグの上書きについ...
 
共有:
通知
すべてクリア

[解決済] カスタム投稿のOGPタグの上書きについて

12 投稿
4 ユーザー
3 Reactions
641 表示
(@robjhon)
Trusted Member Registered
結合: 4年前
投稿: 40
Topic starter  

いつもお世話になっております。
特定のカスタム投稿で出力されるOGPタグを、function.phpで上書きできるでしょうか?
通常のmetaタグ(タイトル、ディスクリプション)は上書きできたのですが、OGPタグが上書きできませんでした。
アーカイブページ、投稿ページそれぞれで出力されるOGPタグを変更したいです。
よろしくお願いします。

<カスタム投稿ページ>
https://jewelry-craft.online/schoolinfo/

----------------------------------------------
サイト名:ジュエリークラフト
サイトURL: https://jewelry-craft.online
ホームURL: https://jewelry-craft.online
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
WordPressバージョン:6.4.2
PHPバージョン:7.4.33
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
言語:ja,en-US;q=0.9,en;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.6.9.7
カテゴリー数:37
タグ数:77
ユーザー数:328
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.2
style.cssサイズ:62136バイト
functions.phpサイズ:103765バイト
----------------------------------------------
Gutenberg:1
AMP:0
PWA:0
Font Awesome:4
Auto Post Thumbnail:0
Retina:0
ホームイメージ:/wp-content/uploads/2022/04/F31A2795__w1920xh1080.webp
----------------------------------------------
ブラウザキャッシュ有効化:1
HTML縮小化:1
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:0
----------------------------------------------
利用中のプラグイン:
Activity Plus Reloaded for BuddyPress 1.1.0
Advanced Dynamic Pricing for WooCommerce 4.5.4
AIOVG – Custom Templates
Akismet Anti-spam: Spam Protection 5.3
All-in-One Video Gallery (Premium) 3.5.2
All-in-One WP Migration 7.79
All-in-One WP Migration Unlimited Extension 2.54
BasePress 2.15.24
bbPress 2.6.9
Broken Link Checker 2.2.3
BuddyPress 11.3.1
CBX Bookmark & Favorite 1.7.17
CBX Bookmark & Favorite Pro Addon 1.3.13
Checkout Field Editor for WooCommerce 2.0.0
Classic Editor 1.6.3
Complianz | GDPR/CCPA Cookie Consent 6.5.6
Copy Anything to Clipboard 3.5.0
Favorites 2.3.3
GD bbPress Attachments 4.6
Health Check & Troubleshooting 1.7.0
Inline Google Spreadsheet Viewer 0.13.2
Instagram Feed Pro Personal 6.3.4
Jetpack 12.9.3
Jetpack Protect 1.4.2
KOMOJU Payments 3.0.5
MailPoet 4.40.0
MailPoet Premium 4.40.0
MathJax-LaTeX 1.3.12
MW WP Form 5.0.6
Payment Plugins for Stripe WooCommerce 3.3.54
Redirection 5.3.10
Simple Membership After Login Redirection v1.6
Simple Membership BBPress Addon v1.4
Simple Membership Google recaptcha 2.0
Simple WordPress Membership 4.4.0
SiteGuard WP Plugin 1.7.6
SWPM WooCommerce Addon 2.0
The Events Calendar 6.2.9
User Role Editor 4.64.1
WooCommerce 8.4.0
WooCommerce Amazon Pay 2.5.1
WooCommerce PayPal Payments 2.4.2
WP-Optimize - Clean, Compress, Cache 3.2.22
WP All Import 3.7.3
WP Mail Logging 1.12.0
WP Mail SMTP 3.11.0
WP ULike 4.6.9
XML Sitemap Generator for Google 4.1.16
Xserver Migrator 1.6.1
Yes/No Chart 1.0.12
YITH WooCommerce Wishlist 3.28.0
----------------------------------------------


   
引用
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

フィルターフックの ogp_card_title を使えば、og:title と twitter:title を変更できます。

コードの例:

add_filter( 'ogp_card_title', function( $title ) {
  if ( is_post_type_archive( 'schoolinfo' ) ) {
    $title = 'アーカイブのタイトルを入力';
  } elseif ( is_single( 'schoolinfo' ) ) {
    $title = '投稿ページのタイトルを入力';
  }
  return $title;
});

問題は og:description と twitter:description です。この 2 つのディスクリプションを変更するフックがありません。フックを追加してもらうのがいいと思います。

code_minify_call_back で無理やりやることもできますが、タイトルを変更するフックはあるのになと思ってしまいます。

add_filter( 'code_minify_call_back', function( $html ) {
  if ( is_post_type_archive( 'schoolinfo' ) || is_single( 'schoolinfo' ) ) {
    $desc = is_post_type_archive( 'schoolinfo' )
      ? 'アーカイブのディスクリプションを入力'
      : '投稿ページのディスクリプションを入力';
    $html = preg_replace(
      '/<meta property="(og:description|twitter:description)" content=".*?">/is',
      '<meta property="$1" content="' . $desc . '">',
      $html
    );
  }
  return $html;
});

ちなみに、コードを追加せずとも、投稿ページは「抜粋」や「メタディスクリプション」に入力した内容が反映されるはずです。

This post was modified 10か月前 by Akira

   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 

ogp_card_descriptionフィルターフックを追加しておきました。
https://github.com/xserver-inc/cocoon/commit/57d024b97ad972d42506cc7a955e10f99a59446d

※改めて見てみるとsns_card_titleは不要だったかもしれない。とりあえず使っている人がいるかもしれないので残しておきます。


   
返信引用
(@robjhon)
Trusted Member Registered
結合: 4年前
投稿: 40
Topic starter  

ご回答ありがとうございます。

わいひらさんがご提供頂いた、フィルターフックを親テーマに追加して、function.phpに次のように書いたところ、次のような結果になりました。

og:titieに上書きしたディスクリプションが反映されてしまいます。

どこがいけないでしょうか?

<?php
function customize_meta_and_ogp_tags()
{
  if (is_post_type_archive('schoolinfo')) {
    // 共通のタイトル、ディスクリプション、キーワード
    $new_title = '全国のジュエリースクールやアクセサリー彫金教室一覧  |  ジュエリークラフト';
    $new_description = '日本全国のジュエリースクールやアクセサリー教室、彫金教室を一覧でご紹介。東京・大阪など都道府県による絞込検索や、関東・関西などエリアによる絞込検索が可能。また、ジュエリーアクセサリーのジャンルとして、彫金・ワックスモデリング・CAD・デザイン・石研磨・彫り留め・銀粘土やアートクレイ・天然石・ビーズ・ガラス・ハンドメイド・ビジネスなど、ジャンルによる絞込検索も可能。';
    $new_keywords = 'ジュエリースクール,アクセサリー教室,彫金教室,全国,日本';

    // 通常のメタタグの上書き
    add_filter('pre_get_document_title', function () use ($new_title) {
      return $new_title;
    });
    add_action('wp_head', function () use ($new_description, $new_keywords) {
      echo '<meta name="description" content="' . $new_description . '">' . "\n";
      echo '<meta name="keywords" content="' . $new_keywords . '">' . "\n";
    }, 1);

    // CocoonテーマのOGPフィルターフックを使用したOGPタイトルとディスクリプションの上書き
    add_filter('ogp_card_title', function () use ($new_title) {
      return $new_title;
    });
    add_filter('ogp_card_description', function () use ($new_description) {
      return $new_description;
    });
  }
}
add_action('wp', 'customize_meta_and_ogp_tags', 0);
?>

 

 

<結果(ツイッターも同様)>

<title>全国のジュエリースクールやアクセサリー彫金教室一覧  |  ジュエリークラフト</title>
<meta name="description" content="日本全国のジュエリースクールやアクセサリー教室、彫金教室を一覧でご紹介。東京・大阪など都道府県による絞込検索や、関東・関西などエリアによる絞込検索が可能。また、ジュエリーアクセサリーのジャンルとして、彫金・ワックスモデリング・CAD・デザイン・石研磨・彫り留め・銀粘土やアートクレイ・天然石・ビーズ・ガラス・ハンドメイド・ビジネスなど、ジャンルによる絞込検索も可能。">
<meta name="keywords" content="ジュエリースクール,アクセサリー教室,彫金教室,全国,日本">

<meta property="og:title" content="日本全国のジュエリースクールやアクセサリー教室、彫金教室を一覧でご紹介。東京・大阪など都道府県による絞込検索や、関東・関西などエリアによる絞込検索が可能。また、ジュエリーアクセサリーのジャンルとして、彫金・ワックスモデリング・CAD・デザイン・石研磨・彫り留め・銀粘土やアートクレイ・天然石・ビーズ・ガラス・ハンドメイド・ビジネスなど、ジャンルによる絞込検索も可能。">
<meta property="og:description" content="「ジュエリークラフト(Jewelry Craft)」は、ジュエリー制作と彫金技術・アクセサリー制作と販売に関する情報を提供するWEBメディアです。">


   
返信引用
chu-ya
(@chu-ya)
Famed Member Registered
結合: 3年前
投稿: 2930
 

●原因

追加された、母体にコーディングミスがあります。
代入先が$titleとなっている為、上書きされ、ディスクリプションとなってしまう。

https://github.com/xserver-inc/cocoon/blob/8c97b4ca075d8dccee7fc46d95fec7e7f7a130a6/tmp/header-ogp.php#L53

https://github.com/xserver-inc/cocoon/blob/8c97b4ca075d8dccee7fc46d95fec7e7f7a130a6/tmp/header-twitter-card.php#L53


●対策

代入先$titleを、$descriptionに修正する。

>わいひらさん

修正願います。


   
わいひら reacted
返信引用
(@robjhon)
Trusted Member Registered
結合: 4年前
投稿: 40
Topic starter  
$description = apply_filters('ogp_card_description', $description);
に変更したら上書きできました。
 
ちなみに、同じようなやり方で、カスタム投稿のアーカイブページのアイキャッチ画像をfunction.phpで変更できるでしょうか?

   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 

すいません。GitHubのファイルを修正しておきました。
https://github.com/xserver-inc/cocoon/commit/fbdcf7846180a81851531b2373b9d2572b8ce4f9


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 

投稿者:: @robjhon

ちなみに、同じようなやり方で、カスタム投稿のアーカイブページのアイキャッチ画像をfunction.phpで変更できるでしょうか?

こちらのog:image(Twitterカードのtwitter:imageも)の$ogp_image変数の値を変更するということでしょうか?
https://github.com/xserver-inc/cocoon/blob/411bb888d9c9d04d4105bda7bc5c3989a56aaed7/tmp/header-ogp.php#L60
そうだとしたらフックを追加しておきましょうか?


   
返信引用
(@robjhon)
Trusted Member Registered
結合: 4年前
投稿: 40
Topic starter  

@yhira さん、はいそうです。

カスタム投稿の単一ページは、各投稿で設定できるのだと思いますが、

カスタム投稿のアーカイブページの画像は、現在はダッシュボードのCocoonで設定したものが表示されてると思います。

タイトルやディスクリプション同様、カスタム投稿アーカイブページ毎に画像を設定できたら良いのではないかと思います。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 

ogp_card_ogp_imageフックを追加しておきました。
https://github.com/xserver-inc/cocoon/blob/1284b1382ff52620342015866e235843587faa99/tmp/header-ogp.php#L75
https://github.com/xserver-inc/cocoon/blob/1284b1382ff52620342015866e235843587faa99/tmp/header-twitter-card.php#L75

投稿者:: @robjhon

タイトルやディスクリプション同様、カスタム投稿アーカイブページ毎に画像を設定できたら良いのではないかと思います。

タクソノミページのアイキャッチも反映されるように修正しました。
https://github.com/xserver-inc/cocoon/commit/1284b1382ff52620342015866e235843587faa99

 


   
返信引用
(@robjhon)
Trusted Member Registered
結合: 4年前
投稿: 40
Topic starter  

@yhira さん、ありがとうございます。

希望通りの結果になりました!

 

とても便利で使いやすいテーマで重宝しています。

今後ともよろしくお願いいたします。


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 

ご確認いただきありがとうございます!
今後ともよろしくお願いいたします。


   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました