「するぷろ」からの投稿が捗る! wpautopを限定的に有効化する方法

WordPressには自動整形を制御しているwpautopという関数があります。

通常、WordPressを使用して投稿する場合、このwpautopのおかげで、特に意識することなく、改段落や改行された記事を書くことができますが、意図しない表示になることもあり、わざと無効化している人も多いのではないでしょうか?

wpautop

wpautop無効化で困ること

僕も環境的にはこのwpautopを無効化して普段利用しています。
職業病とも言えますが、意図しない表示のされ方を防ぐのはもちろん、アウトラインを考えた記事を書こうと思うと、しっかりとマークアップしながら書きたくなっちゃうんですよね。

そういう人が多いのか、ググってみると無効化する方法を紹介した記事が、たくさん出てきます。

当然のことですが、無効化してしまうと、何もマークアップしないテキストは改段落も改行もされませんから、常に段落は<p>タグで括る必要がありますし、改行は<br>タグを入れなければなりません。

意図した通りに整形された記事を書くためには、そんな労力は何のその。
それに「MarsEdit」などを利用すれば、そこまで書くのに苦労することもありません。

ただ、これってPCなどのキーボードを利用して書くのに限った話。
これがいざスマホから更新しようと思うと、とんでもなく面倒くさいことになるんですよね。一応アプリの組み合わせ次第で、ある程度軽減はできるものの、慣れはやっぱり必要です。

一応僕もスマホからブログ更新ができるよう、「するぷろ」と「TextExpander」をインストールしていますが、記事を書くスピードを考えると、やっぱりPCから投稿しちゃいます。

限定的に自動整形をオンにする

モブログのために、わざわざ無効化したwpautopを都度有効化する? ということも一度は考えましたが、そんな面倒なことはアホらしい。
だったらPCから書けばいいや、と。そう考えていた時期が僕にもありました。

しかしですね、リアルタイムに外からスマホで記事を書きたいというシーンもあるわけです。そこで考えたのが、「だったら特定条件下で自動整形を有効にしちゃえばいいじゃない」ってことです。

仮にこれができれば、スマホからの投稿時にわざわざ段落ごとに<p>で括ることも、改行のたびに<br>を挿れる必要もありません。
サクサクと文章を入力し、記事をアップすることが可能になります。

wpautopを限定的に有効化するための8行コード

ということで、今回の本題。
今回ご紹介するコードを、WordPressのテーマファイルの中にあるfunctions.phpに記述しちゃえば、wpautopを無効化したことで発生する、スマホからの投稿時の煩わしさから解放されちゃうのですよ。やったね!!

function onautop( $content ) {
	if ( strpos( $content, '<!--autop-->' ) !== false ) {
		add_filter( 'the_content', 'wpautop' );
		$content = preg_replace( "/\s*\<!--autop-->\s*(\r\n|\n|\r)?/u", "", $content );
	}
	return $content;
}
add_filter( 'the_content', 'onautop', 1 );

このコードをfunctions.phpに記述・保存したら、自動整形をオンにしたい記事を書くときに、先頭行にでも<--autop-->とコメントを入れ、あとは普通に記事を書いて投稿すればOK。

参考にしたのは以下のコード。

autop関数で、特定のコメント(<--autop-->)があるかどうか調べて、記事中にこのコメントが見つかった場合、wpautop関数をフィルターに加えて、コメントを消すようにしています。

参考にしたリンク先のコードは、逆にwpautop関数が有効である場合に、コメントを入れることで無効化するというもので、今回のコードはこれをちょろっと書き換えてみただけですが、うまいこと想定通りの動きをしてくれています。

自動整形をオフにしていて、「するぷろ」や先般公開された「SLPRO X」を使って、もっとサクサク記事を書けるようにしたいという人には、かなり便利になるコードではないかと思うので、ぜひ取り入れてみてください。

2015年7月27日 追記
「SLPRO X」で試してみましたが、アプリ側でHTML自動クリーニングを実行しているせいか、コメントタグが投稿時に消失してしまい、上の方法だとwpautopがオンになりませんでした。

「WordPressカスタマイズ」新着記事

ソーシャルメディアのトータルシェア数を条件にして記事をランダム表示する方法

ホシナ カズキ

チャット風の会話形式コンテンツをプラグインなしで実装する方法

ホシナ カズキ

【WordPress】パーマリンクからカテゴリーベースを取り除く方法

ホシナ カズキ

ディレクトリを切ってインストールしたWordPressをドメイン直下で表示させる方法

ホシナ カズキ

「RSS Footer」が開発終了したならfunctions.phpで同じことやればいいじゃない

ホシナ カズキ

もっと見る

モバデビはモバイルやウェブのネタ、ニュースMaciPhoneなどのApple関連、WordPressのことなど、いろいろ書く雑食系ブログメディア。
ためになるかもしれないし、ならないかもしれない。そこそこ更新してますそこそこ。

このブログについてもっと詳しく