Hadi bakalım:
Eklentiler, alt tema ve / veya ana tema kombinasyonlarının tüm şablon kısımları da dahil olmak üzere , geçerli açılış sayfası için kullanılan tüm şablon dosyalarının bulunduğu bir HTML listesi :
echo '<ul><li>'.implode('</li><li>', str_replace(str_replace('\\', '/', ABSPATH).'wp-content/', '', array_slice(str_replace('\\', '/', get_included_files()), (array_search(str_replace('\\', '/', ABSPATH).'wp-includes/template-loader.php', str_replace('\\', '/', get_included_files())) + 1)))).'</li></ul>';
Sunucunuzun herhangi bir yol üzerinde dublaj eğik çizgi döndürmediğini kontrol etmeniz gerekebilir . Bunu, footer.php'deki gibi, ancak tüm şablon dosyaları gerçekten kullanıldıktan sonra fakat yönetici çubuğu oluşturulmadan önce yerleştirmeyi unutmayın .
eğer admin-bar stuff
yol üst, ya da başka bir dosyaya gösteriyor, dosya adını değiştirmek template-loader.php
sen kırmak için ne gerekiyorsa filname: Bu kod satırında. Sıklıkla:class-wp-admin-bar.php
Yönetici çubuğunda buna ihtiyacınız varsa, listenin sonunda hiçbir dosya girilmediğinden emin olmak için doğru önceliği kullanın (en eski) . Örneğin:
add_action('admin_bar_menu', 'my_adminbar_template_monitor', -5);
Öncelikle -5
yükleri ilk önce yükleyiniz. Önemli get_included_files()
olan doğru zamanda arama yapmaktır, aksi halde bazı dizi atmaya gerek duyulur!
Bunu parçalamak için:
Sen olamaz PHP backtrace olmadan tüm dahil şablon dosyalarını toplamak. İçerdeki süper küreseller template_include
hepsini toplamaz . Diğer yol, her şablon dosyasına "bir işaretleyici yerleştirmektir", ancak ilk önce dosyalarla etkileşime girmeniz gerekiyorsa, zamana ve fikre katlanırsınız.
1) Geçerli Wordpress isteği tarafından kullanılan tüm dosyaların içinde kontrol etmemiz gerekiyor. Ve onlar çoktur! Fonksiyonlarınız bile kaydedilmeden 300 dosya kullanıyorsanız şaşırmayın.
$included_files = str_replace('\\', '/', get_included_files());
PHP yerel get_included_files () kullanıyoruz, ters eğik çizgileri eğik çizgileri Wordpress dönen yollarının çoğuna uyacak şekilde eğik çizgilere dönüştürüyoruz.
2) template-loader.php dosyasının kayıtlı olduğu diziyi kesiyoruz. Bundan sonra, doldurulmuş get_included_files () sadece şablon dosyalarına yerleştirilmiş olmalıdır.
/* The magic point, we need to find its position in the array */
$path = str_replace('\\', '/', ABSPATH);
$key = $path.'wp-includes/template-loader.php';
$offset = array_search($key, $included_files);
/* Get rid of the magic point itself in the new created array */
$offset = ($offset + 1);
$output = array_slice($included_files, $offset);
3) biz tema klasörü veya eklenti klasörünün kadar yolunu ihtiyacım yok, sonuçları aşağı kısaltın şablonlar olarak kullanımda, karışık olabilir eklentileri, tema veya çocuk tema klasörlerden.
$replacement = $path.'wp-content/';
$output = str_replace($replacement, '', $output);
4) Son olarak, diziden güzel bir HTML listesine dönüştürün.
$output = '<ul><li>'.implode('</li><li>', $output).'</li></ul>';
Bir son değişiklik gerekebilir part3) içinde -replacement , eğer yok edilmesini istediğiniz gerekli içeren eklentiler. class-files
Şablon çıkışı işleme sırasında geç ve "kesilme" diyebilirler .
Ancak, fikir bu aşamada çıktı veren bir "şablon" olmasa bile, yüklenenlerin izlenmesi gerektiği için onları görünürde bırakmayı makul buldum .