サポート » 使い方全般 » ショートコードにPタグ

  • tomomi1125

    (@tomomi1125)


    ブログ記事内にショートコードを使用しているのですが
    勝手に<p></p>で囲まれ不必要な改行が入る状態です。

    ネット検索を行い解決策を探したのですが
    ワードプレスの仕様ともとれるようでしたので
    解決方法があればお教えください。

    お手数ですが、CSSは初心者のため
    操作内容等は省かずに記載していただければありがたいです。

    宜しくお願いいたします。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • CG

    (@du-bist-der-lenz)

    改行ではなく行間段落ではないでしょうか。パラグラフは要素として最小のブロックになるので、行毎ではなく、全体を最小単位にすることです。

    • この返信は2 週間前に  CG さんが編集しました。
    ishitaka

    (@ishitaka)

    こんにちは

    記事(コンテンツ)を表示する際のフィルターフックは the_content です。
    shortcode_unautop 関数はショートコードの p タグのラップを除去します。
    デフォルトでは、the_content フックで shortcode_unautop 関数がコールされているのでショートコードは p タグでラップされないと思います。
    add_filter( 'the_content', 'shortcode_unautop' );

    テーマまたはプラグインによってこのフックが無効化されているのかもしれません。
    テーマまたはプラグインの設定を確認してみてください。

    設定ができないようでしたら、下記のコードを functions.php に追記してみてください。
    add_filter( 'the_content', 'shortcode_unautop' );

    モデレーター mypacecreator

    (@mypacecreator)

    tomomi1125さん

    おそらくishitakaさんの記載のとおりだと思うのですが、お使いのテーマが何かを教えていただけると、そのテーマでshortcode_unautopの指定がどうなっているかを調べることもできます。
    もしくは、プラグインの影響の可能性もあります。

    問題解決のためのチェックリスト をお読みいただき、これに沿って情報提供していただけると、よりお力になれると思います。

    CG様
    ishitaka様
    mypacecreator様

    ご回答ありがとうございます。
    テーマはストークを使用しております。

    プラグインとして怪しいのは以下のプラグインかと存じます。
    いずれもプラグインを停止すると
    他の記事に影響が出すぎるため実行できておりません。
    brbrbr
    TinyMCE テンプレート

    また、 functions.phpに
    add_filter( ‘the_content’, ‘shortcode_unautop’ );
    を追記し
    キャッシュのクリアや記事の書き直しをいたしましたが変化はございませんでした。

    以上、宜しくお願いいたします。

    CG

    (@du-bist-der-lenz)

    「brbrbr」プラグインは改行を補助して、パラグラフで囲います。「brbrbr」プラグインの使用を前提にテーマのスタイルシートで対策しないと、行間や段落のマージンが障害になるでしょう。

    CG様
    ご返答ありがとうございます。
    折角のお答えなのですが自分の知識不足のためか専門用語が多く
    大変申し訳ないのですが、実行すべきことがわかりかねます。

    どのように対策すればよいのでしょうか?
    何卒宜しくお願いいたします。

    CG

    (@du-bist-der-lenz)

    どう切り出そうか時間を弄するので、理解できなかったら無視して下さい。無理して考えないで「専門用語」と思える点を問えばいいです。「折角のお答えなのですが」と返されれば、わたしも作業の手を止めて答えざるを得なくなります。「brBrbr」は記事全体をpタグで囲う仕様になっているため、h1,h2,h3など見出しタグまでpタグの中に入るような形になってしまいます。現在でも日付の表示には課題が残っていますが、2014年頃は、まだ日本語文章が苦手なWordPressでした。そこで「brBrbr」プラグインは簡単に整形してくれる便利さがありました。わたしはその頃からスタイルシートで対応して来ましたが、現在では「brBrbr」プラグインは役割を全うしきったと感じています。そこでプラグインを停止してしまうと、過去の記事が多いほど改修作業が大変にはなるでしょう。「brBrbr」プラグインがエラーを出さないまで使い続けたいというのは勝手ですが、「brBrbr」がpタグで囲ってしまわないように変更するには「brBrbr」プラグインを書き換える必要が出て来ます。(明日昼の原稿をまとめている、その山場の渦中なので論調が抜けてないままで書いていること、ご勘弁を願います。)

    こんにちは

    brBrbrプラグインを使わないのが、対応の難易度やシステム的に見ても賢明な判断だとは思います。

    全く同じ機能ではないと思いますが、似た機能を持つプラグインも探せばある・・・かもしれません。
    私はちょっと見つけられませんでした。

    brBrbrプラグインを使わないと文章の体裁が崩れてその対応が大変なのであれば、プラグインの中身を変更してください。

    公式プラグインでもないし、プラグインのアップデートも2009年で停止しており、PHPの記述としても問題のあるソースなので、変更しても問題ないものと思います。

    brBrbr.phpの27行目をコメントアウトし、変更してください。
    対象のファイルはWordPressのインストールディレクトリ/wp-content/plugins/ディレクトリにあるます。
    FTPでダウンロードして編集し、上書きアップロードします。
    あるいは、「プラグイン」>「プラグイン編集」から右上のセレクトボックスでbrBrbrを選択し、編集します。

    // $brbr="<p>\n".$brbr."</p>\n";  // ←先頭にスラッシュを2つ付けてコメントアウト
    $brbr=$brbr."\n"; // ←追記

    CG様
    munyagu様
    ご回答ありがとうございます。
    貴重なお時間の中お答えいただきありがとうございます。

    // $brbr=”<p>\n”.$brbr.”</p>\n”; // ←先頭にスラッシュを2つ付けてコメントアウト
    $brbr=$brbr.”\n”; // ←追記

    こちらの書き換えを実行させていただきましたが変化が無いようです。
    プラグインを思い切って深夜に一時停止させてみましたが
    それでも変化がありませんでした。

    TinyMCE テンプレート
    が原因かもしれません。

    自分でもまたそちらの方向から調べてみます。

    CG

    (@du-bist-der-lenz)

    「TinyMCE テンプレート」も自動整形の処理を最後に行います。それを停止する方法はすでに出ていますが、同等の動作をする品質格差のあるプラグインを共生させては台無しです。それぞれのプラグインで重複するスタイルシートの指定に翻弄されているのでしょう。

    TinyMCE テンプレート含め、その他のプラグインを停止して症状が改善するか確認してみてください。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • このトピックに返信するにはログインが必要です。