カスタム投稿タイプでadd_filterを使用してthe_contentに追加する方法は?


9

カスタム投稿タイプは正常に動作していますが、ページ内のテキストの一部はすべての投稿で同じであるため、関数を使用して追加します。

私はこれを設定しました:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Test text here';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

しかし、ページを更新すると、「ここにテキストテスト」しか表示されず、投稿のコンテンツ(the_contentから)は表示されません。

この機能をコメントアウトすると、投稿内容が再表示されます。何が悪いのですか?

回答:


8

コンテンツを追加するのではなく、完全に上書きします。$content .= 'Test text here';代わりに何かをする必要があります。


その期間に多くの力、ありがとう!別の質問:Like、+ 1などのソーシャルボタンを表示するためにプラグインを使用していて、それらがnew-default-contentの上に表示されています。ボタンを下に表示する方法はありますか?このフィルターは、the_contentとnew_default_contentを1つの完全なセクションとして「チャンク」すると想定しました。
ジョージC

1
さて、あなたは新しいコンテンツを追加しているので、後で表示されます。プラグインも同じフィルターを使用しているため、プラグインより前にフィルターを処理して、プラグインが処理する前にフィルターを処理してみることができます。
helenhousandi

ああ、私は優先事項について調べます—もう一度感謝します!
ジョージC

参考までに、私は優先度をいじってみましたが、それでうまくいきました!ありがとうございました:)
ジョージC

-1

簡単な方法で `

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Test text here';
                                }
                       return $content.$new_content;

コードだけは良い品質の回答とは見なされません。あなたはコードが何をするか、そしてそれがどのように質問に答えるかを説明するべきです。このようにして、コーディングの初心者である読者はあなたの答えを理解します。あなたのコードを説明できますか?
cybmeta 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.