Aktualisieren:
Informationen zur Verwendung von Seitenvorlagen in WordPress 4.4+
In WordPress 4.4 array_intersect_assoc()
wurde das aus der WP_Theme::get_page_templates()
Methode entfernt.
Siehe Ticket Nr. 13265 und Änderungssatz Nr. 34995 .
Wir können daher die Verwendungsinformationen für Seitenvorlagen mit dem theme_page_templates
Filter direkt in die Dropdown-Liste der Vorlagen einfügen , ohne Javascript oder einige clevere Tricks für den Objekt-Cache zu verwenden, die hier von @MikeSchinkel oder hier von @gmazzap erläutert werden .
Hier ist eine Demo ( PHP 5.4+ ):
add_filter( 'theme_page_templates', function( $page_templates, $obj, $post )
{
// Restrict to the post.php loading
if( ! did_action( 'load-post.php' ) )
return $page_templates;
foreach( (array) $page_templates as $key => $template )
{
$posts = get_posts(
[
'post_type' => 'any',
'post_status' => 'any',
'posts_per_page' => 10,
'fields' => 'ids',
'meta_query' => [
[
'key' => '_wp_page_template',
'value' => $key,
'compare' => '=',
]
]
]
);
$count = count( $posts );
// Add the count to the template name in the dropdown. Use 10+ for >= 10
$page_templates[$key] = sprintf(
'%s (%s)',
$template,
$count >= 10 ? '10+' : $count
);
}
return $page_templates;
}, 10, 3 );
Beispiel:
Hier können wir sehen, wie es aussehen könnte, wobei die Informationen zur Nutzungsanzahl zu den Vorlagennamen hinzugefügt werden:
Ich hoffe, Sie können dies an Ihre Bedürfnisse anpassen!
SELECT p.post_title as PostTitle, m.meta_value as Template FROM `wp_postmeta` as m join `wp_posts` as p ON p.ID = m.post_id where ((p.post_type = 'page') OR (p.post_type = 'post')) AND (m.meta_key = '_wp_page_template');
. Ihre Eingabe war von unschätzbarem Wert, um herauszufinden, wo sich die richtigen Datenbankfelder befanden.