2015年12月28日

WordPressで、余計なpタグが入るのを防ぐ


本日、よくお仕事をさせていただいている方からご連絡がありまして……

相手「以前にいじっていただいたページのレイアウトが崩れてますけど……(´・ω・`)」
おれ「What? あいべっぐゆぉーぱーどぅん?(;・∀・)」

以前にお仕事をご一緒させていただいた時、
ちょっとhtmlのテーブルで作られた時間割があったのですが、
どういうわけかそれのレイアウトがおかしなことになってたんですよ。

んで、そのテーブルのソースがこちら。

<table  class="schedule">
<tbody>
<tr>
<th>月</th>
<th>火</th>
<th>水</th>
<th>木</th>
<th>金</th>
<th>土</th>
</tr>
<tr>
<td><a href="http://blog.k-kansei.com/"> 17:30~18:30</br>国語</a></td>
<td><a href="http://blog.k-kansei.com/">17:00~18:00</br>算数</a></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
</tbody>
</table>

うん。特に問題ないですよねぇ?
んで、実際に出力されていたhtmlがこちら。

<table  class="schedule">
<tbody>
<tr>
<th>月</th>
<th>火</th>
<th>水</th>
<th>木</th>
<th>金</th>
<th>土</th>
</tr>
<tr>
<td><a href="http://blog.k-kansei.com/"> 17:30~18:30</p>
<p>国語</a></td>
<td><a href="http://blog.k-kansei.com/">17:00~18:00</p>
<p>算数</a></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
</tbody>
</table>

?(;・∀・) なんでPタグが入ってるの?(;・∀・)

というわけなのですが、実はWordpressには、
自動でpタグを挿入してくれるという何ともいえない機能があります(;・∀・)

本来ならガッツリ消してしまいまいたい機能ではあるのですが、
中々そういうわけにもいかないので、
任意でpタグの自動挿入を防げるように対処をしました。

以下のソースを、function.phpにぺたっと貼り付けます。

function rm_wpautop($content) {
    global $post;
    // Get the keys and values of the custom fields:
    if(preg_match('|<!--handmade-->|siu',$content)){

    	remove_filter('the_content', 'wpautop');

    } else {
        add_filter('the_content', 'wpautop');
    }
    return $content;
}
// Hook into the Plugin API
add_filter('the_content', 'rm_wpautop', 9);

貼り付けたら、pタグの挿入をしてほしくないページに、
以下のソースを貼り付けてあげます。

<!--handmade-->

このコメントが貼り付けられた記事は、
pタグの自動挿入がダメちんになるようです。
というわけで確認してみたところ、自動挿入は無くなりました。

その後、いろいろとページを渡り歩いてみたのですが、
やはりというか何というか……困ってる人が多いようで、
いくつか記事を見つけましたよ。

できればサイトを立ち上げて最初の頃に『Pタグの自動挿入を切る!』
てソースをfunction.phpに突っ込むのが1番よいのでしょうか、
今回お話があったのは、すでに稼働中のサイト。

というわけで、任意に機能が切れるこちらのソースを使わせていただきましたッ!!!

参考:【Wordpress.org】不要なpタグについて (7 件の投稿)

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)