[解決済み] single.php での the_content

フォーラム 使い方全般 [解決済み] single.php での the_content

  • このトピックには5件の返信、2人の参加者があり、最後にfupaffにより13年、 3ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #50219
    fupaff
    参加者

    不具合の場合は必ずご記入ください。


    Welcart のバージョン: v0.9.1

    症状を確認したブラウザ: firefox3.6.13, safari5.0.1

    サーバー(会社名、サービス名): MAMP1.9.2

    SSLの利用: 無し

    WordPress のパーリンク設定: /%monthnum%/%postname%/


    wordpress3.0.4jp、welcart0.9.1、MAMP上で、いちからテンプレートを制作しています。

    single.php のループ内で、the_content を使って商品説明文だけを表示させたいのですが、フィルターが掛かった状態で、サムネイル、タイトル、商品番号、skuと一緒に表示されてしまうため、今回、ご質問させていただきました。

    こちらのコミュニティーの記事

    https://www.welcart.com/community/archives/tag/the_content

    を参考に、リムーブ・フィルターも試してみましたが変化はありませんでした。is_single は、echo したところ、true(1) を返しているようです。

    $post -> post_content を、直接 echo した場合、html のタグが取れてしまうため、the_content を使いたいと考えています。

    原因としては何が考えられますでしょうか?

    なんとか解決したいと思っています。よろしくお願い致します。

    #61345
    fupaff
    参加者

    >$post -> post_content を、直接 echo した場合、html のタグが取れてしまう

    「記事エディタ上の段落、改行が、<p><br />として反映されない」に訂正させてください。

    調べてみると、$post -> post_content 、get_the_content で取得した値は、the_content と違ってフォーマットされていないので、そのようになると理解できました。

    となると、質問は、「get_the_contentで取得した記事のデータにエディタ上の段落、改行を反映するには?」と、welcartからはずれたものになりますね‥。

    もっと、勉強するべきですね。

    申し訳ありません。

    開発者さま、素晴らしいプラグインをありがとうございます。

    #61346
    nanbu
    キーマスター

    こんにちは。

    wpautop( $foo, $br ) という関数が有ります。

    こちらをご覧ください。

    http://codex.wordpress.org/Function_Reference/wpautop

    #61347
    fupaff
    参加者

    nanbuさま

    こんばんは。

    ご回答ありがとうございます。

    ご教示いただいた関数 wpautop と以下の記事から

    https://www.welcart.com/forum/topic.php?id=349

    https://www.welcart.com/community/archives/1697

    function.php 内に

    add_filter('usces_filter_itemPage','my_usces_filter_itemPage', 10);

    function my_usces_filter_itemPage(){

    $html = wpautop(get_the_content());

    return $html;

    }

    と記述し、解決致しました。

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

    ただ、今回、関数 filter_itemPage を見てみると、最初のコミュニティー内の記事にある通り、is_singluar が 偽の場合のみフィルターを通ることが理解できたのですが、そのように動いていないのでは?と疑問に思いました。

    is_single も真でしたし、the_content の直前に、ar_dump($post)で post_mine_type を調べましたが、値は、’item’となっていました。

    もし、お時間がありましたら、

    この点についてお答えいただければ幸いです。

    失礼致します。

    #61348
    nanbu
    キーマスター

    こんにちは。

    コミュニティーのその記事はトップページについて説明していますので、single.php で扱うページとは状況が違ってきます。

    filter_itemPage($content) はincludes/default_filters.php で設定しており、全てのthe_content に対してフックされます。

    しかし、filter_itemPage($content) を見ていただくと分かる通り、ここでは

    if( ($post->post_mime_type != 'item' || !is_single()) ) return $content;

    としていますので、完全に商品詳細ページのみが対象となります。

    商品詳細ページは、is_single は真であり、post_mine_type は’item’で間違いないのです。

    #61349
    fupaff
    参加者

    nanbuさま

    お答えありがとうございます。

    落ち着いてコードを見て考えてみると、仰る通りですね。

    お恥ずかしい限りです。

    フィルターも

    remove_filter('the_content',array(&$usces,'filter_itemPage'));

    と、はずすして、望んでいた通り解決できました。

    welcartが、私に、wordpress、phpに触れるきっかけを作ってくれました。

    感謝しております。

    このたびは、ほんとうにありがとうございました。

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