web-dev-qa-db-fra.com

Limiter le nombre de pages utilisant un modèle spécifique?

J'ai un modèle de page personnalisé, donc un fichier .php dans mon dossier de thèmes avec cela au début

/*
 * Template Name: MyTemplate
 */

Maintenant, je peux, dans le backend WP, créer de nouvelles pages et sélectionner ce modèle pour que la page créée utilise ce modèle.

Comment puis-je limiter le nombre de pages à l'aide de ce modèle? Par exemple, si je ne souhaite autoriser qu'une seule page à l'aide de ce modèle? Ou s'il n'y a jamais eu l'autorisation d'utiliser trois pages. Comment puis-je atteindre cet objectif?

3
Foo Bar

Vous pouvez aborder ceci en utilisant d'abord une requête de base de données pour compter le nombre de pages qui utilisent déjà le modèle:

$query = "SELECT COUNT(*) as total
    FROM prefix_posts as p JOIN prefix_postmeta as m ON p.ID = m.post_id
    WHERE p.'post_type' = 'page'
    AND p.'post_status' = 'publish'
    AND m.'meta_key'    = '_wp_page_template'
    AND m.'meta_value'  = 'page-your-template-name.php'";

Ensuite, vérifiez si votre nombre de comptage est atteint et supprimez le modèle de page avec le filtre theme_page_templates :

3
Jami Gibbs