サポート » 使い方全般 » 投稿者タグ the_content について

  • 解決済 majorsystem

    (@majorsystem)


    投稿者タグ「the_content」を利用すると原稿の本文が表示されるのですが
    本文の前後に<p>~</p>が付きます。

    基本的に、本文は通常のテキストが前提の為「ワードプレス」と入力すると
    <p>ワードプレス</p>となります。

    当然だとは思うのですがたとえば本文中に
    <p class=”xxx”>タイトル</p>と入力すると

    <p><p class=”xxx”>タイトル</p></p> となってしまい
    「W3C(World Wide Web Consortium:HTMLの文法のルール)」
    から見るとエラーになってしまいます。

    表示には問題はありませんが、エラーの重要度が高いため改善出来るのであれば改善したいと考えています。

    ワードプレスの本体を変更する必要があると思われるため難しいと思いますが何か良い知恵があれば教えていただきたいのですが。

    よろしくお願いします。

    ※出来れば<p>タグを表示させないようにしたいのですが。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • こんにちは。

    WordPress自体をカスタマイズしても良いのであれば
    こちらが参考になるかと思います
    http://kanari.info/b/247.html

    が、
    <p class=”xxx”>タイトル</p>
    ではなく
    <span class=”xxx”>タイトル</span>
    と入力してもいいかと思います。

    トピック投稿者 majorsystem

    (@majorsystem)

    nebura様

    早速のご回答ありがとうございました。
    教えていただいた情報、役に立ちそうです。

    これを参考に修正したいと思います。

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

    トピック投稿者 majorsystem

    (@majorsystem)

    nebura様

    コメントにしてみたのですが動作は変わりませんでした。

    default-filters.php

    add_filter(‘the_content’, ‘wptexturize’);
    add_filter(‘the_content’, ‘convert_smilies’);
    add_filter(‘the_content’, ‘convert_chars’);
    // add_filter(‘the_content’, ‘wpautop’);
    add_filter(‘the_content’, ‘prepend_attachment’);

    単純にコメントにしたのですが、やり方がまずいのでしょうか。

    ちなみにsingle.php側の投稿者タグの定義は

    <?php the_content(‘<p class=”serif”>’ . __(‘Read the rest of this entry »’, ‘kubrick’) . ‘</p>’); ?>

    です。

    <?php the_content( __(‘Read the rest of this entry »’, ‘kubrick’) ); ?>

    でも同じでした。

    せっかく教えていただいたのですが

    当然だとは思うのですがたとえば本文中に
    <p class=”xxx”>タイトル</p>と入力すると

    <p><p class=”xxx”>タイトル</p></p> となってしまい
    「W3C(World Wide Web Consortium:HTMLの文法のルール)」
    から見るとエラーになってしまいます。

    通常ですと HTML エディタ (あるいは TinyMCE の xhtmlxtras プラグインなど) で p 要素に class などを付与した場合、 wpautop() では見出しや他のブロックレベル要素と同じように重複したマークアップはしないはずです。例えばビジュアルエディタで行揃えした場合も p 要素がネストするマークアップになっている場合、本体ではなく他に原因を探った方が良さそうです。

    例えば Contact Form 7 のように、独自の autop() を用意しているプラグインを使用していませんか?
    (ちなみに Contact Form 7 の autop() にはそのような問題はありません)

    それからこれは本題と関係ありませんが、任意のフィルタを解除したい場合、本体の add_filter() をコメントアウトするのではなく、テーマやプラグインにて remove_filter() を使用した方が良いと思います。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    当然だとは思うのですがたとえば本文中に
    <p class="xxx">タイトル</p>と入力すると
    
    <p><p class="xxx">タイトル</p></p> となってしまい

    そんなことはありませんが。

    本文をきちんと p で段落分けしてマークアップすれば、全体を p で包むようなマークアップにはなりません。

    もしそうなるとしたら、テーマの方で、the_content() の外側に p 要素を入れてたりしませんか?

    トピック投稿者 majorsystem

    (@majorsystem)

    mizube様 lilyfan様 貴重なご意見ありがとうございました。

    プラグインを多数使用していましたので、一つずつ確認すると
    「brBrbr」のプラグインを停止すると<p>タグの現象がなくなりました。

    「brBrbr」プラグインは勝手に改行してくれるプラグインなのですが・・・

    悲しいことに原稿の内容が「brBrbr」プラグインに依存しているため
    停止するとすごく見難くなるのです。 400ページあるのですが・・・

    しかし、原因が見つかりました。 ありがとうございます。

    次の手を探してみます。

    トピック投稿者 majorsystem

    (@majorsystem)

    「brBrbr」プラグインを作成された作者の方には悪いのですが
    プラグインの中身をさわって動作を確認してみました。

    function brBrbr($brbr) {
    $brbr = str_replace(array(“\r\n”, “\r”), “\n”, $brbr); // cross-platform newlines
    $brbr = str_replace(“\n”, “\n”, $brbr); // cross-platform newlines
    $brbr = preg_replace(‘!(</?(?:table|img|thead|tfoot|caption|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|textarea|input|blockquote|address|p|math|p|script|h[1-6])[^>]*>)\s*!’, “$1”, $brbr);
    $brbr = preg_replace(‘|<blockquote([^>]*)>|i’, “</p>\n<blockquote$1><p>”, $brbr);
    $brbr = str_replace(‘

    ‘, “</p>\n<p>”, $brbr);
    $brbr = preg_replace(‘/(<script.*?>)(.*?)<\/script>/ise’, “clr_br(‘$0’)”, $brbr);
    $brbr = preg_replace(‘/(<form.*?>)(.*?)<\/form>/ise’, “clr_br(‘$0’)”, $brbr);
    // $brbr=”<p>\n”.$brbr.”</p>\n”; <—- ここです。
    return $brbr;
    }

    下から3行目の
    $brbr=”<p>\n”.$brbr.”</p>\n”;
    をコメントにしたら問題は解決したのですが、どうでしょうか。

    ご意見がございましたらお願いします。

    「brBrbr」プラグインは勝手に改行してくれるプラグインなのですが・・・

    これは意味違いますよね・・・
    正確にはxhtmlの文法違反を無視して<br />タグを複数入力できるようにするプラグインだと思うのですが。
    改行を入れたければShift+Enterで入りますし、普通にEnter押せば段落として<p>タグを追加してくれますし、そんなにwordpressのソース自動修正が気に入らないものなのでしょうか。
    入力方法に慣れればたいしたことはないと思いますけど;)

    トピック投稿者 majorsystem

    (@majorsystem)

    ご指摘ありがとうございました。

    とりあえず、brBRbrのプラグインの変更して様子を見ようと思います。
    本来の修正では無いと思いますので、再度調査してみます。

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

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「投稿者タグ the_content について」には新たに返信することはできません。