タイトル部分に自動的に本文を入れて更新
こんなことに時間ぎょうさん取りたないよ。
ということで、もう本文を更新するときにそのまま同じ内容をタイトルにぶち込んで更新してしまえばよいかという力技で解決することにしました。表向きはあくまでこれは本文ですよと。
長文になったときのことを考えて文字数でちょん切って、HTMLタグも消して、それでタイトルに突っ込んどきゃきっとOKでしょう。
function replace_post_title($title) { global $post; if( $post->post_type == 'post' ){ $title = wp_html_excerpt( strip_tags($_POST['content']), 20, '...' ); } return $title; } add_filter('title_save_pre', 'replace_post_title');
$_POSTの処理が若干、甘いかしら。。
「title_save_pre」というのが、ダッシュボードで、タイトルを保存する前に呼ばれるフックですね。
そこで強引にタイトルへ$_POST[‘content’]を入れてしまうと。
ちなみに、注意点としてこの段階ではまだ global $post;の $post->post_contentに値が入っていない。
ので、$_POSTから値を取得する必要がございます。
こんな感じで本文だけを入力します。タグなんかがあってもきっと大丈夫なはず。投稿して、いざ一覧ページへ。
あと最後に意識しておかなければいけないこととして、データベースのタイトルに入っているのはあくまでちょん切って最後に「…」ってなっている文字列です。
検索対象を「タイトル」にして、21文字以降にひっかけようとしてもダメですね。
もひとつwp_title()でheadタグの<title>を表示している場合は、やはり「○○○…」って方なので、ここもケアしないといけないですね。
今回はwordpressで「タイトル」使わない方法を紹介してみました。
何にせよ一番重要なポイントは「いや、タイトルと本文両方使いましょうよ! なんか分からんけどその方が絶対おトクですから!」と押し通せるディレクションスキルですけども。