• 指定の箇所に特定の投稿を呼び出そうとしています。

    <?php query_posts('cat=11&showposts=1');?>
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <a>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
    <?php the_content( ); ?>
    <?php endwhile; else: ?>
    <?php _e('non'); ?>
    <?php endif; ?>

    <?php the_content( ); ?>の部分に任意のタグをつけたいのですが、呼び出したコンテンツの部分にPタグが自動で挿入されてしまい、ダブってしまいます。

    <b><?php the_content( ); ?></b>

    <p><b>コンテンツ</b></p>

    先に回答いただいた、wp_list_categoriesのパラメータでのリスト名と同じような内容かとも思うのですが、Pタグをつけない、もしくは、任意のタグで出力することはできないでしょうか?

    よろしくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • よくある質問ですよね、Pタグ。

    「the_content pタグ」このあたりで検索すると山ほど出てきますんで、お好きな方法で…。

    トピック投稿者 t62m0nar

    (@t62m0nar)

    V.J.Catkickさんありがとうございます。

    >「the_content pタグ」このあたりで検索すると山ほど出てきますんで、お好きな方法で…。

    そうなのですね・・・

    失礼しました。
    ちょっと、調べてみます。

    トピック投稿者 t62m0nar

    (@t62m0nar)

    V.J.Catkickさんにご指摘いただき、調べてみたのですが、プラグイン、もしくは、default-filters.phpの該当部分の削除でPタグが入らないということで、試したところ、そのように、動作しました。

    しかし、投稿時に不便な点が生じてしまいました。

    このフォーラムでの過去の質問なのですが、質問した方は、私と同様にクラスを指定しても、<p><p class=”xxx”>コンテンツ</p></p>のように、Pタグがダブるということを言われているのですが、それに対して、下記のように、書かれています。

    http://ja.forums.wordpress.org/topic/2482?replies=10

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

    この方の場合はプラグインなどの問題も示唆されていましたが、私の場合はプラグインを1つも入れていない状態で上記のようになってしまいます。

    <p class=”xxx”><?php the_content( ); ?></p>

    <p class=”xxx”><p>コンテンツ</p></p>

    (私の場合はクラスの内側にPタグが挿入されます)

    どのような、原因が考えられるでしょうか?

    まず、インストール直後のクリーンな状態でthe_content()を実行すると、Pタグが入った状態になりますよね。つまり、the_content()を呼び出している場所をさらにPタグでくくると、

    <p class="xxx"><?php the_content( ); ?></p>

    <p class="xxx"><p>コンテンツ</p></p>

    という状態になります。これが正常な動作で、なんらかの方法、例えばフィルタ等を用いてthe_content()からPタグを抜くと、

    <p class="xxx">コンテンツ</p>

    という結果が得られるはずです。ここいらはプラグイン等「やり方」によって左右されるのでなんとも言えませんが、ほぼ、目的は同じだと思います。

    だから、これら以外の結果になるとすれば、プラグインや訂正が正しく動作していないことが考えられます。特にコアソース(WPの構成ファイルそのもの)をいじるのは、バージョンアップ等で対応しきれなくなったり、不用意な動作をしたりするので、単にPタグを抜きたいのであれば、CSSでPタグに対して修飾をかけたほうが近道だと思います。

    トピック投稿者 t62m0nar

    (@t62m0nar)

    V.J.Catkickさま
    ありがとうございます。
    プレーンな状態でそのようになっているのですが、テーマはデフォルトのTwentyではありません。

    このテーマに何かしら問題があるんでしょうね。
    アドバイスのように、CSSで表示を制御するように、考えてみます。

    このテーマに何かしら問題があるんでしょうね。

    今回の件では特に問題は無いと思います。テーマとthe_content()との連携がうまくいっていないだけです。

    単にPタグを抜きたいのであれば、CSSでPタグに対して修飾をかけたほうが近道だと思います。

    テーマのfunction.phpに以下を追加する方法なら手軽なのでお試しあれ。
    remove_filter('the_content', 'wpautop');

    トピック投稿者 t62m0nar

    (@t62m0nar)

    kurosquareさま
    ありがとうございます。
    V.J.Catkickさんにご指摘いただき、やってはみました。確かにpタグは入らなくなるのですが、改行もなくなってしまうため、手動で入力しなければなりません。

    それは、手動で入れてもいいんですが、実際に投稿する際にhtmlのエディタで入力して、一度、ビジュアルに切り替え、再度、htmlに戻ると改行タグがなくなってしまうという現象が出てしまいました。

    自分だけで、投稿する分にはいいんですが、複数の人間で扱うとなるとちょっと不便かと思いまして。

    あえて、そのことは聞かなかったのですが、みなさん。そのような状態にはならないでしょうか?

    >今回の件では特に問題は無いと思います。テーマとthe_content()との連携がうまくいっていないだけです。

    これは、相性みたいもので、簡単に解決できるものではないんですよね?

    the_content()を書くべきところを

    <?php echo $post->post_content; ?>

    ↑これか

    <?php echo str_replace( "\n", '<br />', $post->post_content ); ?>

    ↑こんなのとか…どうでしょう?
    ※検証してないけど…(汗

    トピック投稿者 t62m0nar

    (@t62m0nar)

    V.J.Catkickさま
    ありがとうございます。
    試してみて、また報告させていただきます。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「query_postsでのコンテンツ呼び出し時のタグについて」には新たに返信することはできません。