Özel yazı türüyle add_filter kullanarak the_content'e nasıl eklenir?


9

İyi çalışan özel bir yazı türüm var, ancak sayfadaki metnin bir kısmı her yazı için aynı, bu yüzden bir işlev kullanarak eklemek istiyorum.

Bu kurulum var:

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');

Ancak sayfayı yenilediğimde, gönderinin içeriğini (the_content'ten) değil, yalnızca "Metin testi burada" nı görüyorum.

Bu işlevi yorumlarsam yazı içeriği yeniden görünür. Neyi yanlış yapıyorum?

Yanıtlar:


8

İçeriği eklemek yerine tamamen üzerine yazıyorsunuz. Bunun $content .= 'Test text here';yerine böyle bir şey yapmalısın .


O dönemde çok fazla güç, teşekkürler! Başka bir soru: Like, +1 vb için sosyal düğmeleri görüntülemek için bir eklenti kullanıyorum ve yeni varsayılan içeriğin üzerinde görünüyorlar - düğmelerin aşağıda görünmesini sağlamanın bir yolu var mı? Bu filtrenin tam bir bölüm olarak the_content & new_default_content'i "parçalayacağını" varsaydım.
George C

1
Yeni içeriği ekliyorsunuz, daha sonra görünecek. Eklenti aynı filtreyi kullandığından, eklentiden önce işlemek için filtreyi daha yüksek bir önceliğe takmayı deneyebilirsiniz.
helenhousandi

Ah, öncelikler konusuna bakacağım - tekrar teşekkürler!
George C

FYI Öncelikle oynadım ve bu hile yaptı! Tekrar teşekkürler :)
George C

-1

Basit bir şekilde `

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

Sadece kod kaliteli cevap olarak değerlendirilmez. Kodun ne yaptığını ve soruyu nasıl cevapladığını açıklamalısınız; bu şekilde kodlamada yeni olan okuyucular cevabınızı anlayacaklardır. Kodunuzu açıklayabilir misiniz?
cybmeta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.