サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2019年1月30日 05:03
こんにちは。
タイトル通りなのですが、そういったカスタマイズはできますでしょうか?
また最後は「...」と続くようにしたいです。
2019年1月30日 20:44
できるかできないかで言えば、url_to_internal_blogcard_tagとurl_to_external_ogp_blogcard_tagをPHPでカスタマイズすればできるかと思います。
Topic starter
2019年1月31日 19:27
回答ありがとうございます。
調べて試してみます。
2019年1月31日 21:10
以下の手順で行えば、カスタマイズ出来るかと思います。
- GitHubから最新版( https://github.com/yhira/cocoon )のファイルでテーマをアップデート
- 以下のコードをfunctions.phpに追記
//内部・外部ブログカードのスニペット部分の文字列制御 add_filter( 'cocoon_blogcard_snippet', function ($snippet){ return mb_substr($snippet, 30);//文字数となる数字は好みで変更してください } );
2019年5月14日 14:43
わいひら様
ご無沙汰しております。
今更で恐縮ですが、Cocoon最新版の場合、上記のコードでは抜粋の開始位置が30文字目となってしまい、目的を満たせませんでした。
そこで、以下のように変更したところ一応動作しましたので、ご報告させていただきます。
もし誤りや懸念等ありましたらご指摘いただけると助かります。
//内部・外部ブログカードのスニペット部分の文字列制御
add_filter('cocoon_blogcard_snippet', 'snippet_word_count');
function snippet_word_count($snippet) {
return get_content_excerpt($snippet, 30);
}
2019年5月14日 21:51
返り値直前の関数が違うようですが、mb_substrの方を利用してもダメだったのでしょうか?
2019年5月14日 22:13
わいひら様
ご返信ありがとうございます。また、直接の変更箇所が分かりづらく申し訳ありません。
mb_substrではうまくいかず、get_content_excerptで目的の動作となりました。
プログラミング素人なので原因は不明ですが、mb_substrの場合、
冒頭から指定した文字数分が抜粋されませんでした。
当方の環境依存でしょうか…。
2019年5月15日 00:02
よくよく関数を確認してみたら、mb_substrは開始バイトと長さを指定する必要がありますね。
正確にはこんな感じかと思います。
//内部・外部ブログカードのスニペット部分の文字列制御
add_filter( 'cocoon_blogcard_snippet', function ($snippet){
return mb_substr($snippet, 0, 30);//文字数となる数字は好みで変更してください
} );
僕のコードミスみたいです。
2019年5月15日 12:42
わいひら様
ご返信ありがとうございます。
ご指示いただいたmb_substrのコードを試したところ、先頭から指定の文字数は抜粋されまるようになりましたが、末尾に「…」が付かなくなってしまいました。
そこまで細かくこだわる必要はないのかもですが、個人的には「…」を表示したいと思い、特に問題なければget_content_excerptを使いたいと思います。
よろしくお願いいたします。
2019年5月15日 23:08
普通に末尾に文字列で「…」を付ければよいのではないでしょうか。
2019年5月16日 00:00
わいひら様
すみません。「普通に〜」と仰るのは、関数でという意味でしょうか。それともCSSでしょうか。
どちらでも実現できるとは思いますが、私としては単純にmb_substrだけでは「…」が付かないことをご報告させていただきました。
目的の実現方法は分かりましたので、これ以上の発言は控えます。
サポートいただき、ありがとうございました。
2019年5月16日 01:13
こういうことです。
//内部・外部ブログカードのスニペット部分の文字列制御
add_filter( 'cocoon_blogcard_snippet', function ($snippet){
return mb_substr($snippet, 0, 30).'…';//文字数となる数字は好みで変更してください
} );
最初の書き込みでコードを書き換えておられたので、PHP編集ができるものと思っておりました。
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。