連載の紹介ホームブログ制作WordPressテーマのCocoonで、記事の抜粋をカスタマイズ(全角スペースを取り去る)したブログ制作2023.05.02このブログでは、行の先頭を字下げするために、全角スペースを行頭へ入れるようにしています。当初はp(段落)タグのスタイル設定で字下げをしようかとも思ったんですけど、字下げしたいのは段落だけではなくbrで強制改行した時も同様だったので、スタイル側で変な強制力を持たせるのはやめました。手で字下げ文字として全角スペースを入れておけばいいかと割り切って入力をしていたわけです。それだと本文に、当然ですけど全角スペースが文字として組み込まれていることになります。これが微妙に困るんですよね。下記のようにサイトのフロントページでインデックスとして並べているエントリーカードや......関連記事を参考に貼り付ける用途のブログカードなど、「どんな記事か」を示す要約文(抜粋)が差し込まれる箇所で全角スペースが混じってきてしまうのです。抜粋の中では改行は省かれているから、これが微妙に見映えが悪い。なんとなーく気になったままずっと放置していたこの問題。重い腰をあげて対処してみることにしました。下記関数が該当するようです。コールバック関数を定義して処理すればいいはず。中身は受け取った抜粋データ($text)に含まれる全角スペースを空文字に置換して送り返すだけです。よし完成!......と思ったんですが、これが機能してくれません。何も起きない......。処理が間違えているのか、はたまたフックできていないのか......WordPressはたまにしかいじらないし、PHPも以下同文なので、このあたりの処理を自分がちゃんと理解しているとは言いがたいものがあります。「PHPで書いた処理が間違えてる」のか、「そもそもコールバック関数の定義が間違えていて処理が呼ばれていない」なのかがハッキリしません。して、単に空っぽの文字列を返す処理に書き換えてみます。何も起きてくれないので、「PHPで書いた処理が間違えてる」可能性は排除。処理を元に戻しておきます。書式としては間違えてないはずなので、フィルターフックの名前を「get_the_snippet」以外にあれこれ変えて試すことにします。「the_excerpt」駄目、「get_the_excerpt」駄目。「cocoon_internal_blogcard_snippet」を使ったらブログカードは全角スペースが排除できるようになりました。これだとフロントページのエントリーカードは変更されません。上流で変更できないと駄目です。WordPressが元から持っているフックは駄目で親テーマで定義したフィルターフック名しか拾えないなんてことはないよなあと「the_content」にしてみたら、本文から綺麗に全角スペースが消えました。ことは、やっぱり全部拾えるはずです。なると考えられるのは、フィルターフックで上記コールバック関数が呼ばれて内容を書き換えてはいるんだけど、その後親テーマのCocoon側で、なんらかの処理が走って元の文字列に書き戻されちゃってる感じかなあ。上流にさかのぼることにしたよくわからないので、もうちょっと処理をさかのぼりながら、使えそうなフィルターフックがあったら片っ端から試してみればいいやーということにしました。$content;}endif;使えそうなフィルターフックがさっそくありましたよ。関数最後の「content_excerpt_after」をフィルターフック名として使ってみたら、求めていた結果を得ることができました。$text);}微妙~に気になるけど、気にしないようにすれば気にならないって問題だったので、ささやかな変化ではありますが、思った通りの結果を得ることができたので大満足です。それにより、完全にこっちへ引っ越してしまうことを決めたので、ここからさらにどれだけ高速化が図れるか色々と試してみました。...ブログ制作WordPressテーマCocoonがインデックスリスト内への広告複数表示のカスタマイズに対応したので、それを反映させる以前Cocoonのfunctions.phpをいじって、こんなカスタマイズをしたことがありました。この時はis_index_middle_widget_visibleという関数を子テーマ側で無理矢理上書きしてインフィード広告の複数表示を...ブログ制作Amazon商品リンクで表示される価格を、Amazon在庫商品を優先するようにカスタマイズする昨日書いた記事の通り、AmazonのPA-APIが使えるようになったので、ブログ内の商品リンクをすべて楽天からAmazonへのリンクに貼り直しています。その作業中、「あれ?」と思う出来事が。今度出す新刊のお知らせをサイト上で告知したいんですが、ちょうど良い場所がありません。ヘッダー画像上に適してそうな場所があるので、テーマをカスタマイズして告知スペースを設けることにしました。コメントをキャンセルメールアドレスが公開されることはありません。名前メールサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Δスポンサーリンクスポンサーリンクこの記事を書いた人きたみりゅうじ大阪から関東に出てきてプログラマやったり脱サラしたりしながら、流れ流れて今は千葉の田舎で暮らしてます。本を書いたりイラスト描いたりして食べてるおっさんです。旧サイトからこちらのブログに引っ越しました。defined.")}))})()。