こんにちは、
フィルターで例えると、
add_filter('the_content','change_first_match');
function change_first_match( $content ){
return preg_replace('!<h3 class="abc">小見出し1</h3>!','<h2 class="abc">小見出し1</h2>', $content, 1 );
}
nobita様
返信ありがとうございます。
先のコードはfunctions.phpに記述するものなのでしょうか?
一応、書いて保存まで出来たのですが、h3タグがh2タグに変化することはなかったです…。
記事タイトルが<h2 class=”post-title”>(記事タイトル)</h2>
になっているせいで、タグの順番が合わないのでしょうか?
$content, 1 の「1」は何番目にそのタグが出てくるかを表していると思ったのですが…。
先のコードはfunctions.phpに記述するものなのでしょうか?
すみませんが、手とり足とりというわけにもいかないので、、、
簡単に説明だけしますので、ググったりして調べてみてくださーい。
コードは「フィルター」と呼ばれるもので、投稿自体を書き換えるわけではなく、「ブログを表示した時に、表示が変更になるというものです」
フィルターの種類によっては、保存時に書き換えるといった作業も可能です。
コードが、ちゃんと変換するかどうか試したテスト投稿をペーストしておきます。
<h3 class="abc">小見出し1</h3>
<p class="">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<h3 class="abc">小見出し1</h3>
<p class="">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<h3 class="abc">小見出し1</h3>
<p class="">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
PHP: preg_replace – Manualを読むと、関数が何を行っているのかわかると思います。
もっといい方法があるのかもしれないので、気が向いたら試してみてください。
キャプチャーはこちら
http://www.tenman.info/wp3/manualraindrops/files/capture.png
この投稿は自動システムによって承認待ちとなっています。72時間以内に審査されます。
となったので、返信内容が公開されるのをしばらく待ってください
nobita様
出来ました。
functions.phpに以下の記述で変換されました。
function change_first_match( $content ){
return preg_replace(‘!<h3 class=”abc”>小見出し1</h3>!’,'<h2 class=”abc”>小見出し1</h2>’, $content, 1 );
}
add_filter(‘the_content’,’change_first_match’);
よくよく考えたらadd_filterを後ろに書けば良かったのですね。
それから承認待ちとなったと思われるメールが届いています。
>フィルターの種類によっては、保存時に書き換えるといった作業も可能です。
今回のは見かけを変更するだけでデータベースの記事内容は変わっていないわけですよね。
保存時に書き換えるということも出来るのですね、驚きました。
PHP: preg_replace – Manual
というのはphp.net/manual/ja/function.preg-replace.phpのページでよろしいのでしょうか?
自分にはキツそうですが読んでみます。
トピックを閉じるのを忘れておりました。
解決済みです。ありがとうございました。