サイト内検索
Cocoonフォーラム
![](https://wp-cocoon.com/wp-content/themes/cocoon-master/screenshot.jpg)
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2024年1月20日 12:27
いつもお世話になっております。
特定のカスタム投稿で出力される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
----------------------------------------------
2024年1月22日 21:19
フィルターフックの 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 8か月前 by Akira
わいひら reacted
2024年1月22日 21:39
ogp_card_descriptionフィルターフックを追加しておきました。
https://github.com/xserver-inc/cocoon/commit/57d024b97ad972d42506cc7a955e10f99a59446d
※改めて見てみるとsns_card_titleは不要だったかもしれない。とりあえず使っている人がいるかもしれないので残しておきます。
Topic starter
2024年1月23日 15:54
ご回答ありがとうございます。
わいひらさんがご提供頂いた、フィルターフックを親テーマに追加して、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メディアです。">
2024年1月23日 16:08
●原因
追加された、母体にコーディングミスがあります。
代入先が$titleとなっている為、上書きされ、ディスクリプションとなってしまう。
●対策
代入先$titleを、$descriptionに修正する。
>わいひらさん
修正願います。
わいひら reacted
Topic starter
2024年1月23日 16:51
$description = apply_filters('ogp_card_description', $description);
に変更したら上書きできました。
ちなみに、同じようなやり方で、カスタム投稿のアーカイブページのアイキャッチ画像をfunction.phpで変更できるでしょうか?
2024年1月23日 19:33
すいません。GitHubのファイルを修正しておきました。
https://github.com/xserver-inc/cocoon/commit/fbdcf7846180a81851531b2373b9d2572b8ce4f9
2024年1月23日 19:38
ちなみに、同じようなやり方で、カスタム投稿のアーカイブページのアイキャッチ画像をfunction.phpで変更できるでしょうか?
こちらのog:image(Twitterカードのtwitter:imageも)の$ogp_image変数の値を変更するということでしょうか?
https://github.com/xserver-inc/cocoon/blob/411bb888d9c9d04d4105bda7bc5c3989a56aaed7/tmp/header-ogp.php#L60
そうだとしたらフックを追加しておきましょうか?
Topic starter
2024年1月23日 20:34
@yhira さん、はいそうです。
カスタム投稿の単一ページは、各投稿で設定できるのだと思いますが、
カスタム投稿のアーカイブページの画像は、現在はダッシュボードのCocoonで設定したものが表示されてると思います。
タイトルやディスクリプション同様、カスタム投稿アーカイブページ毎に画像を設定できたら良いのではないかと思います。
2024年1月23日 22:58
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
タイトルやディスクリプション同様、カスタム投稿アーカイブページ毎に画像を設定できたら良いのではないかと思います。
タクソノミページのアイキャッチも反映されるように修正しました。
https://github.com/xserver-inc/cocoon/commit/1284b1382ff52620342015866e235843587faa99
2024年1月24日 21:30
ご確認いただきありがとうございます!
今後ともよろしくお願いいたします。
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。