Stil sayfası olmadan wp_add_inline_style kullanma


18

Oluşturduğum özel bir temanın başlığına özel satır içi stiller eklemem gerekiyor. İşe wp_add_inline_style()yarayan bir fonksiyonla karşılaştım, ancak belirli bir stil sayfasına bağlı olduğu için gerçekten bana uymuyor. Bir stil sayfası bağımlılığı olmadan baş etiketinin sonuna satır içi stiller eklemem gerekir.

Tema stil sayfasını veya var olmayan birini ayarlamaya çalıştım. Her iki durumda da çalışır, ancak biraz kirli bir IMO'dur (tema stil sayfasını iki kez yükleyin veya bir hayalet dosyasına bakın ...). Stil sayfasına bağlı olmadan satır içi stiller eklemenin uygun bir yolu var mı?

Tabii ki, onları doğrudan header.php dosyasına ekleyebilirim ama bundan kaçınmak istiyorum.

Yanıtlar:


24

Stilleri doğrudan sayfa başlığına eklemeniz yeterlidir. Bunu yapmanın en iyi yolu, kancaya sahip bir tema kullandığınızı varsayarak 'wp_head' eylem kancasını kullanmaktır. Şöyle ki:

add_action('wp_head', 'my_custom_styles', 100);

function my_custom_styles()
{
 echo "<style>*{color: red}</style>";
}

Aksiyon kancaları hakkında daha fazla bilgi edinmek için WP kodeksine göz atın .


Sorun değil! Yardımcı olduğuma sevindim.
SkyShab

(Benim gibi) gösterge tablosu sayfalarına özel satır içi CSS eklemek istiyorsanız admin_headişlemi kullanabilirsiniz .
Brezilyalı Adam

16

Sadece bir "kukla" tutamaç kullanabilirsiniz:

wp_register_style( 'dummy-handle', false );
wp_enqueue_style( 'dummy-handle' );

wp_add_inline_style( 'dummy-handle', '* { color: red; }' );

Bu çözümü çok seviyorum çünkü tarzımın bir tutamacı var ve sanki bir .css dosyasından alınmış gibi.
dev_masta

Wp_register_style'ın kaynağı olarak false kullanılmasına, codex.wordpress.org/Function_Reference/…
16patsle

3

Temanızın kesinlikle varsayılan bir stil sayfası vardır (aksi takdirde tema olarak yüklenmez). Bu çok stil sayfasını satır içi CSS'niz için işleyici olarak kullanmanız yeterlidir. Bir örnek bulunabilir functions.php teması TwentyFifteen (kod kısalık için atlanır) sahiptir:

function twentyfifteen_scripts() {
    wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() );

}
function twentyfifteen_post_nav_background() {
    wp_add_inline_style( 'twentyfifteen-style', $css );
}

1
OP özellikle wp_add_inline_style () kullanmak dışında bir yöntem istedi. Her iki yöntem de çalışır ve wp_add_inline_style () ile gitmek için zorlayıcı bir neden bulamadım. Bir neden biliyorsan, bunu bilmek istiyorum.
SkyShab

Çözümünüz işe yarıyor, ancak WP ekibinin birinden bir kez duyduğum bir şeye göre hala "hacky" (yanılmıyorsam); tam olarak benim görüşüm değil . OP'nin stil sayfasını iki kez yüklemeden veya bir hayalet kanca kullanmadan bunu yapmanın bir yolu olmadığını düşünüyorum. Her neyse, bir eklenti yazmadılarsa, her zaman bir temanın stil sayfası vardır. Çözümünüz Kodeks'de belgelendiği için cevabımı da düzenliyorum. :)
Casper

Wp_add_inline_style () ile oynadım ve bulduğum şey bu. Stilleri bir stil sayfasına eklemenin yararı, aldatıldığında stillerin yazdırılmamasıdır. Ancak her iki yöntem de bunları kafada satır içi yazdırır. Diyelim ki bir eklenti geliştiricisi olduğunuzu ve stillerinizin kafasından yazdırıldığını varsayalım. Bunun tema stilleri ile ilgisi yoktur ve bu nedenle bir çocuk teması kendi temalarını kullanmak için ana tema stillerini kaldırırsa, şimdi eklenti stilleriniz çıktı alınmaz. Bu nedenle, OP bu nedenle talebin bu bölümünü belirtmiş olabilir.
SkyShab
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.