« | »

2014年4月25日

WordPress内のTinyMCEでオリジナルのコードをいじらずにpタグ問題を解決する。

ここ何週間か仕事でずっとTinyMCEを組み込んで設定しまくっており、いろいろと改造しているうちにinitの書き方やら関数の定義の方法やらを結構覚えた。

で、せっかく覚えたのだからと、仕事はまったく関係ないこのブログで利用されているWordpressも内部のエディタとして同じくTinyMCEが組み込まれているので、今までWordPressで不満だった、ビジュアルエディタで改行すると勝手に<p>タグでくくって段落にされてしまうところを初期設定でただの<br>タグで改行するようにしたのだ。

今までwebで調べた限り、WordPressのTinyMCEをカスタムする場合、テンプレートのfunction.phpやらwp-include以下のwp-tinymce.phpやらを直接書き換える方法しか見つからなかったけど、今回はプラグイン化してオリジナルのコードにまったく手を加えないようにしてみた。
設定そのものは調べればすぐわかるけど、その設定をプラグイン化したというとところに需要があるかもしれないので公開するどす。

とはいえ、javascriptのコードだと

tinyMCE.init({
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
});

とたった三行書き足すだけの設定をプラグイン化www

<?php
/*******************************************************************************
Plugin Name:not P tag but BR tag onTinyMCE
Plugin URI: http://www.dogustat.com/?p=7004
Description:WordPressのビジュアルエディタの改行時にpタグで囲まずにbrタグで改行するようにするどす。
Version: 1.0
Author: 土偶
Author URI: http://www.dogustat.com/
*/
/*
*******************************************************************************/
///////////////////////////////////////////////////////////////////////////////
function mce_init_filter_function($args){
$args['force_p_newlines'] = false;
$args['force_br_newlines'] = true;
$args['forced_root_block'] = '';
return $args;
}
add_filter('tiny_mce_before_init', 'mce_init_filter_function');

このコードをnotPbutBRonTinyMCE.phptとか適当な名前でWordPressのプラグインディレクトリに置いた後に有効化すればおっけー
zipでよこせという方こちら[notPbutBRonTinyMCE.zip]

ちなみにwordpressに"TinyMCE Advanced"を導入していても問題なく動いた。
同じように"tinyMCE.init()”でする設定なら、ちょいちょいっと書き足せばボタンの追加から定義まで何でもできるぞー

Trackback URL

Comment & Trackback

たすかりました。かなりはまっていたので、本当にありがとうございました。

お役に立ちましたようで何よりです!

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>