Periscope Top: WordPress’in geliştirilmesinde Print_R () pratik kullanımı
Varsayılan olarak, PHP işlemeyi doğrudan, yalnızca efekt üzerinde göremezsiniz. Programlamada sürekli ihtiyaç, kodunuza tam olarak ne olduğunu bilmektir. Bu, en azından üç nedenden dolayı WordPress’te çok karmaşık olabilir:
WordPress PHP kodu birçok yerde kapsamlı bir şekilde değiştirilebilir: ana tema, çocuk teması ve eklenti.
WordPress PHP kodu, kendi kodunuzu tahmin edilmesi zor bir şekilde etkileyebilecek mevcut gönderme gönderimi gibi birçok küresel durum içerir: görünmez durum.
PHP kodu, tarayıcıda HTML olarak görülmeden önce her zaman tam olarak yürütülür.
Bu üçüncü nokta, varsayılan olarak, doğrudan PHP işlemeyi, yalnızca etki üzerinde göremeyeceğiniz anlamına gelir. Bu, örneğin JavaScript’ten farklıdır. Console.log’un işlevselliği, tarayıcınızda çalıştırıldığında JavaScript ile “düşünmenize” izin verir.
Bu, tarayıcınızda görünenlerin işaretlenmesi (“kod”) olduğu ve Chrome geliştiricileri gibi araçlarla şeffaf bir şekilde erişilebileceği ve analiz edilebileceği sıradan HTML ve CSS’den de farklıdır. Bu yüzden bugün, php’de en yakın şeyi konsol.log: print_r () işlevine tanıtacağım. Print_r () ve hangi koşullarda kullanabileceğinizi açıklayacağım (doğrudan sitede değil, lütfen!), Sonra WordPress’in geliştirilmesinde bazı pratik kullanım vakalarını sunacağım. Print_r () ve neden yararlıdır print_r () Değişkenler hakkında bilgileri html olarak yazdırır, böylece bu değişkenleri web tarayıcınızdaki öğrenebilirsiniz.
Resmi PHP işlev referansına göre, print_r () “İnsanlar tarafından bir değişken hakkında okunabilen yazdırma bilgileri.” Yani, değişkenin girdiği değeri HTML’ye yazdırır, böylece bu değişkenler hakkında her şeyi doğrudan web tarayıcınızda öğrenebilirsiniz. İşte doğrudan php.net’den bir örnek: $ a = array (‘a’ => ‘Apple’, ‘b’ => ‘muz’, ‘c’ => dizi (‘x’, ‘y’, ‘ z ‘)); print_r ($ a); Bu kodu çalıştırırsanız, print_r () komutu tarayıcınıza aşağıdaki gibi yazdırır: dizi ([a] => Apple [b] => muz [c] => dizi ([0] => x [1] = >> y [2] => z)) Gönderi içeriğinden hemen önce yukarıdaki kodu çalıştırırsanız – aşağıda tartışacağımız gibi – the_concent’e bağlanarak – aşağıdakileri göreceksiniz (soldaki tarayıcıda, kromda Sağdaki Geliştirme Cihazı): Büyütmek için tıklayın
Print_r () hata ayıklama içindir ve bir şeyde hata ayıklamak için en iyi yer evreleme ortamındadır. Print_r () sayfaya çirkin bir işaretleme verdiğinden, bir alternatifiniz olmasa bile, sitede çalıştırmak önerilmedi. Var_dupp () ‘yi doğrudan sitede çalıştırmanız gerekiyorsa, sonuçları gizli bir div’e dahil ederek biraz daha sorumlu yapabilirsiniz:
<? PHP var_dupp ($ testvar); Daha sonra, doğrudan kullanıcıları etkilemeden VAR_DUMP () sonuçlarını görmek için sayfa kaynağını ("tarayıcınızın" sayfalarını veya geliştirme aracı setini kullanarak "sayfa kaynağını görebilirsiniz. Değişkenleri kontrol etmek için: diğer iki yöntem, var_dupp () ve echo aynı şekilde çalışabilir. Sayfaya bir şey yazdıran ana PHP işlevi olan Echo, değişkenleri kontrol etmek için kullanılabilir. Ancak, bu sadece dizeye ve tamsayılar gibi dizeye kolayca atılabilen şeyler için çalışır. ECHO dizisini denerseniz, yalnızca bir dizi alırsınız ve nesneyi yankılıyorsanız, ölümcül hatalarla bir grev sitesi yaparsınız – "neler olduğunu öğren" amacıyla çok yararlı değildir.
Sık sık var_dump () kullanıyorum. var_dupp () print_r () 'dan daha kapsamlıdır, ancak bu, aşağıdaki karşılaştırmada olduğu gibi daha az okunabilir anlamına gelir:
wp_query nesnesinden print_r
Aynı wp_query nesnesinden var-dump Ancak, bazen opint_r () bilgilerini doldurmak için bir Var_Dump () ‘a ihtiyacınız vardır, bu örnekte olduğu gibi, taşma yığınından da gösterilmez: // $ testarr = array (”, false, 42, dizi (’42’) verildi; // Var_Dump ($ testarr) çalıştırıyor; Bu sonucu verir: dizi (4) {[0] => string (0) “” [1] => bool (yanlış) [2] => int (42) [3] => dizi (1) {[0 => String (2) “42”)}} // print_r ($ testarr) çalıştırma; Bu sonucu verir: dizi ([0] => [1] => [2] => 42 [3] => dizi ([0] => 42)) gördüğünüz gibi, print_r () sayılar arasında ayrım yapmaz (42) ve sayısal dize (“42”) veya boş dizeler (“”) ve boolean false arasında. Bu fark önemlidir, bu nedenle ihtiyacınız olduğunda var_dupp () ‘yi elde edin! Ancak, amacımız için, print_r () hızlı bir şekilde okunması daha kolaydır ve genellikle üzerinde çalıştığımız değişkenler hakkında ne bilmemiz gerektiğini öğrenecek kadar iyidir. Örnek 1: İlk Print_R gösterimiz için tüm alan özel alanlarını ve değerini görüntüler, Meta Post olarak da adlandırılan tüm özel gönderi alanlarını inceleyeceğiz. Son zamanlarda bu sınavı yapmak zorundayım çünkü bazı özel alanların bazı yayınlarımın getirdiği emin değilim. Bir evreleme ortamında (dolaylı), yeni eklentide veya function.php temanızda yazacağımız kod şöyle görünüyor:
add_filter (‘the_content’, ‘wspout_print_r_demo’); İşlev wspout_print_r_demo ($ content) {$ meta = get_post_meta (get_the_id ()); print_r ($ meta); $ Content iade; } Kod aşağıdaki gibi çalışır:
Her şeyden önce The_Concent WordPress filtresine bağlanıyoruz. WSPSPOUT_PRINT_R_DEMO () özel işlevlerimizi gerçekleştireceğiz ve oynatılması için geçerli gönderme içeriği, $ içerik veriliyor.
get_post_meta () Şu anda get_the_id () kullanarak gönderime sunduğumuz belirli gönderi kimlikleri için tüm özel alanları alın. Tüm meta verileri $ meta değişkenine tutuyoruz. Sonraki, print_r () $ meta, insanlar tarafından okunabilecek bir formda bir sayfaya koyarız.
Son olarak, $ Content, Değişik Gönderi içeriğini iade ettik.
Bunu neden the_concent filtresiyle ilişkilendiriyoruz? İki nedenden ötürü: İlk olarak, the_concent’e bağlanmak, fonksiyonları Get_the_id () gibi döngüdeki kullanmamızı sağlar. İkincisi, bu, Print_R’mizin nerede yazdıracağını tam olarak bilmemizi sağlar: içeriğin hemen üstünde.
Soldaki tarayıcıda ve sağdaki Chrome geliştiricisinde görülen sonuç budur:
Büyütmek için tıklayın
Gördüğünüz gibi, şimdi gönderiye bağlı tüm meta yayınlara bakıyoruz – ve siteyi keşfettiğimizde, yukarıdaki kodu devre dışı bırakana kadar gördüğümüz her gönderi için bu bilgileri göreceğiz. Örnek 2: WP_QUERY Custom tarafından alınan yayınları İkinci Print_R () demosunda görüntüler, WP_QUERY Custom tarafından alınan bir yayın görüntüleyeceğiz. WP_Query’nin özelliğinin beklediğim gibi davrandığını hızlı bir şekilde doğrulamak için genellikle buna benzer kodlar çalıştırıyorum.
Aşağıdakiler kod: add_filter (‘the_concent’, ‘wspout_print_r_demo’); İşlev wspout_print_r_demo ($ content) {$ args = array (‘post_type’ => ‘post’, ‘tax_query’ => dizi (dizi (‘taksonomi’ => ‘kategorisi’, ‘tarla’ => ‘slug’, ” => ‘fikirler’,),), ‘sipariş’ => ‘başlık’, ‘sipariş’ => desc ‘,); $ newQuery = yeni wp_query ($ args); print_r ($ newquery-> gönderiler); $ Content iade; } Daha önce olduğu gibi, kolaylık sağlamak için the_concent’e bağlıyız. Bu sefer, aşağıdaki gönderiyi alan özel bir sorgu yazıyoruz: Post_Type’nin gönderisi yazı,
“Fikir” kategorisinde (salyangoz fikirler),
Bunu, yakın zamanda kayıtlı üç parametreyi belirleyen bir $ args yaparak yapıyoruz. Daha sonra wp_query yapıcıımıza $ args devam ediyoruz ve sonuçta ortaya çıkan WP_Query nesnesi $ newQuery değişkeninde saklanır. (WordPress’te özel bir sorgu yazmaya alışık değilseniz, lütfen bu sorunla ilgili kılavuzumuza bakın.) Şimdi print_r () için: $ newquery-> yayınlar yazdıracağız. Bu, yalnızca WP_Query nesnesinden gönderilen yayınları isteyeceğimiz anlamına gelir – tüm nesnenin kendisi değil. Yani sayfada aldığımız şey, tüm özelliklerle alınan nesnelerin gönderilmesinin bir listesidir:
Büyütmek için tıklayın