2013
12/14

the_titleへのフィルターフックで前後のページヘのリンクのタイトルまで変わってしまう現象への対応

記事のタイトルを入力された内容そのままではなく意図した文章に書き換えたいときは、the_titleにフィルターフックを適用することで実現することができます。

たとえば、本文の頭から20文字取得してタイトルに設定したい場合、以下の記述をfunctions.phpに追加します。

通常のブログやサイトであればタイトルが未入力ということはまず起き得ない状況ですが、WordPRessは本文かタイトルのいずれかが入力されていれば記事として成立するため、Webサービス等でWordPressを使う場合はまれに起きることではないかと思います。

※例えば、私が運営しているWeb制作者の(苦笑)というサービスでは、投稿された記事はすべてタイトルがありません。

ADs

next_post_link/next_previous_linkを使っている場合

next_post_linkとnext_previous_linkはアーカイブページや個別記事ページなどで前後のページヘのリンクを出力するテンプレートタグです。
このタグを使って前後のページへのリンクを出力している場合、上記のadd_filterを適用させるとなぜかそのページのタイトルになってしまいます。

※$postの内容を利用するような書き換えでない場合はこのような問題は起きません。

nbcustom

対処法

get_next_post()get_previous_post()という関数を利用して前後のページの情報を取得し、その結果と照らしあわせて置換するようにします。

ADs

Post Comments

メールアドレスが公開されることはありません。

Comments