サポート » 使い方全般 » タイトルの改行タグが消えてしまう。

  • 解決済 myojo1

    (@myojo1)


    こんにちは。

    WordPress3.0を使用しています。
    投稿時に、記事のタイトルの途中に<br />を入れて
    [更新]、[公開]、[下書きとして保存]などのボタンをおすと、
    投稿ページのタイトル(のテキストボックス)から、<br />タグが消えてしまいます。

    もちろん公開されたページにも
    は出力されません。

    たしか以前のバージョンでは問題なく改行タグが使えたと思うのですが、
    WP3では自動でタイトルの改行が消されてしてしまうような処理があるのでしょうか?

    また、”特権管理者”で記事を作成した場合は、タイトルに<br />がちゃんと残ります。
    普通の”管理者”、”編集者”ではダメでした。

    もし、タイトルには改行タグが入れれないのが仕様であれば、他のやり方を考えますが、
    どなたか詳しい方がいらっしゃいましたら、アドバイスください。

    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    myojo1さん、こんにちは。

    権限グループによって、動作が異なる場合は、権限をカスタマイズすることで解決可能です。
    少々古いプラグインなのですが、Role Managerというプラグインで権限の編集が可能になりますので、試されてはいかがでしょうか。

    おそらく、Unfiltered Htmlという権限を有効にしてあげれば、タイトル欄でもタグが使えるはずです。ちなみに、編集者ではUnfiltered Htmlは有効となっており、brタグも入力可能でした。

    トピック投稿者 myojo1

    (@myojo1)

    jim912さん

    ありがとうございます。
    教えていただいたプラグインを導入して色々試してみました。

    >ちなみに、編集者ではUnfiltered Htmlは有効となっており、brタグも入力可能でした。

    とのことでしたので、まず使用しているプラグインをすべて停止し、
    新しく編集者権限、管理者権限のユーザーを作ってみました。
    その後Role Managerプラグインを有効にして確認してみると、Unfiltered Htmlは無効になって作成されていました。。。

    しかし、このプラグインのロール管理というページで確認してみると、Administrator、EditorのデフォルトはUnfiltered Htmlが有効になっています。

    理由はわからないまま、
    とりあえずユーザーの”追加ユーザ権限”を割り当てる箇所で、Unfiltered Htmlを有効にしてみました。

    ですが、やはりタイトルからbrタグが消えてしまいます。。。

    このようなことが起こる原因など、何か思い当たることがありましたらご教授ください。
    よろしくお願いいたします。

    こんにちは、

    特権管理者”で記事を作成した場合は、タイトルに<br/>がちゃんと残ります。
    普通の”管理者”、”編集者”ではダメでした。

    私の環境でも、再現することができました。

    kses.phpの $allowedtagによって縛られているようです。

    kses.phpを改変すると、次回のアップデートで戻ってしまいますから、

    theme/functions.phpに、

    $allowedtags = array(
    		'a' => array(
    			'href' => array (),
    			'title' => array ()),
    		'abbr' => array(
    			'title' => array ()),
    		'acronym' => array(
    			'title' => array ()),
    		'b' => array(),
    		'blockquote' => array(
    			'cite' => array ()),
    			'br' => array(),
    		'cite' => array (),
    		'code' => array(),
    		'del' => array(
    			'datetime' => array ()),
    		//	'dd' => array(),
    		//	'dl' => array(),
    		//	'dt' => array(),
    		'em' => array (), 'i' => array (),
    		//	'ins' => array('datetime' => array(), 'cite' => array()),
    		//	'li' => array(),
    		//	'ol' => array(),
    		//	'p' => array(),
    		'q' => array(
    			'cite' => array ()),
    		'strike' => array(),
    		'strong' => array(),
    		//	'sub' => array(),
    		//	'sup' => array(),
    		//	'u' => array(),
    		//	'ul' => array(),
    	);

    貼り付けてしまえば、いいんじゃないかと思います。

    ここで、brを許可しても、wp_titleは、きちんとstrip_tags してくれるようです。

    但し、注意してほしいのですが、この変数でタグを許可をすると、コメントで入力可能なタグも、変更されるので、セキュリティ上の問題をはらみます

    釈迦に説法だとは思いますが…

    add_filter( 'the_title', 'title_filter1' );
    add_filter( 'wp_title', 'title_filter2' );
    
    function title_filter1($text){
    
    	return str_replace("[br]","<br />",$text);
    }
    
    function title_filter2($text){
    	return str_replace("[br]","",$text);
    }

    別な方法で処理することも検討してみてください

    トピック投稿者 myojo1

    (@myojo1)

    nobitaさん

    ありがとうございます!
    教えていただいた方法で、無事タイトルに改行タグを入れることができました。

    今回タイトルに改行を入れたいと思っているテーマは、コメント入力がありませんので、
    セキュリティ上の問題は大丈夫かと思います。
    ですが、もしコメント入力以外にも懸念事項などありましらご教授くださいませ。

    ありがとうございました。
    助かりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「タイトルの改行タグが消えてしまう。」には新たに返信することはできません。