Çevre etiketi eklemek için) (Comment_Text içine çengel

2 Cevap php

comment_text() Ben şu sorun haline çalıştırıyorum bir <div>...</div> kabın içine her yorumun çıkışını sarmak için Wordpress API tarafından sağlanan fonksiyon içine kanca çalışılıyor:

Benim ekledi filtre olmadan comment_text() çıkış bu gibi görünüyor:

<p>Hello User!</p>
<p>Thank you for your comment.</p>
<p>Stefan</p>

Thats ince ama dediğim gibi ben bunu bir <div class="comment-text">...</div> içine sarılmış istiyorum. Bildiğim kadarıyla bunu yapmanın doğru yolu functions.php Benim tema ve bu yüzden yaptım bir filtre ekleyerek olacaktır:

function stefan_wrap_comment_text($content) {
    return "<div class=\"comment-text\">". $content ."</div>";
}
add_filter('comment_text', 'stefan_wrap_comment_text');

Ben çıktı gördüğünüz gibi belirli bir filtre çalışıyor ama aşağıdaki örnekte gördüğünüz gibi içerik birinci fıkrasına olumsuz sideeffect vardır. İlk paragraf <p>Hello User!</p> olabilir ama bu gibi görünüyor olmalıdır: Hello User!.

<div class="comment-text">
    Hello User!
    <p>Thank you for your comment.</p>
    <p>Stefan</p>
</div>

Herhangi bir fikir ya da ben yanlış yapıyorum ipuçları?

2 Cevap

Lütfen fonksiyonunun önceliği düşürmek için çalışın, belki öncesinde bazı biçimlendirme fonksiyonu var.

add_filter('comment_text', 'stefan_wrap_comment_text', 1000);

Ah, sadece dosyada wp-includes/default-filters.php üzerinde tökezledi ve varsayılan başına aynı işlevi uygulanan çeşitli filtreler olduğunu öğrendim:

add_filter( 'comment_text', 'wptexturize'            );
add_filter( 'comment_text', 'convert_chars'          );
add_filter( 'comment_text', 'make_clickable',      9 );
add_filter( 'comment_text', 'force_balance_tags', 25 ); 
add_filter( 'comment_text', 'convert_smilies',    20 );
add_filter( 'comment_text', 'wpautop',            30 );

Öncelikli 30 ile son filtre <p>...</p> ile kırar wpautop() çift çizgi değiştirilmesi için kullanılan işlevini çağırır. Varsayılan başına add_filter() öncelikli 10 yeni filtreler kaydeder. Daha yüksek bir sayı her şey çalışıyor seçerek son olması benim filtre değiştirme.

// This doesn't work because default priority is 10:
// add_filter('comment_text', 'stefan_wrap_comment_text');
// Add a lower priority (higher number) to apply this filter at last: 
add_filter('comment_text', 'stefan_wrap_comment_text', 99);