Les modèles personnalisés n'apparaissent pas dans la liste déroulante des modèles

23

J'ai des problèmes avec les modèles dans Wordpress (multisite). J'ai créé un fichier à la racine de mon dossier de thème enfant (template-test.php)

<?php
/**
* Template Name: Test template
*
*/
?> 

<?php get_header(); ?>

<?php get_footer(); ?>

Ce modèle n'apparaît pas dans la liste déroulante des modèles lors de la création d'une nouvelle page ou de la modification d'une page existante. La seule chose dans la liste déroulante est le «modèle par défaut».

Ce que j'ai essayé jusqu'à présent: - Désactiver et activer mon thème - Vider les permaliens - Vérifier les autorisations de mes fichiers - Vérifier si style.css est à la racine du dossier du modèle (c'est le cas)

J'ai essayé le même fichier sur une autre installation de Wordpress, et là ça marche bien.

À M
la source
Vérifiez si vous avez index.php à la racine de votre thème
Eugene
J'ai le même problème et j'ai essayé tout ce que vous avez mentionné. Avez-vous déjà trouvé une solution?
wckronholm
Dans mon cas, je ne vois même pas le fichier dans l'éditeur de thème. @Tom l'avez-vous résolu?
Ofir Baruch

Réponses:

32

Juste dans Wordpress 4.9, il y a ce bug: https://core.trac.wordpress.org/ticket/42573 provoquant que les fichiers de modèle ne sont réanalysés qu'une fois toutes les heures.

Pour corriger (jusqu'à ce qu'ils publient une nouvelle version WP avec cette modification), téléchargez le correctif sur ce ticket de bogue et apportez les modifications du correctif à wp-includes/class-wp-theme.php .

J'espère que cela sauve quelqu'un les 2 heures que j'ai perdues à ce sujet ..

Jan Żankowski
la source
3
Vous pouvez également ajouter ce code à votre functions.php ou l'ajouter en tant que plugin pour arrêter la mise en cache plutôt que de modifier les fichiers de base: gist.github.com/westonruter/6c2ca0e5a4da233bf4bd88a1871dd950
Bradley4
8
Une autre solution simple consiste à bump la version du thème dans le fichier style.css comme indiqué par @ ocean90 sur le forum.
r1987
1
@ r1987 la mise à jour style.css a fonctionné!
Darye
Pour moi, le style.css était corrompu, alors mettez à jour le fichier et vous devriez être bon
nodws
4

Il y a un bug dans Wordpress 4.9.

J'ai trouvé ce plugin temporaire super simple. J'ai l'intention de le désinstaller une fois qu'ils auront corrigé le bogue, mais cela fonctionne très bien en attendant!

Plugin: https://github.com/connorlacombe/WP-Clear-File-Cache

brillantairique
la source
3

Assurez-vous d'avoir index.php dans votre thème principal. Le thème principal doit avoir index.php. J'ai le même problème, et c'était le cas. Vérifié par:

function testate(){
    global $wp_themes;
    $tema = wp_get_theme();
    echo '<pre>';
    print_r($tema);
    die;
}

add_action('init', 'testate' );
Isu
la source
2

J'ai également eu ce problème avec un site sur WordPress Multisite et j'ai pu le résoudre en suivant ces étapes:

  1. Accédez à http://example.com/wp-admin/network/themes.php (remplacez example.com par votre URL).
  2. Cliquez sur le lien "Modifier" sous le thème qui vous pose problème.
  3. Dans la barre latérale droite, cliquez sur le nom du fichier de modèle qui n'apparaît pas. Par exemple, il peut indiquer "Modèle de page d'événements (template_events.php)".
  4. N'apportez aucune modification au fichier et cliquez sur le bouton bleu "Mettre à jour le fichier".
  5. Actualisez l'écran d'édition de la page où vous essayez de définir le modèle et il devrait maintenant s'afficher dans la liste déroulante.

Si cela ne vous convient pas, je vous suggère de consulter http://vanseodesign.com/wordpress/wp-page-templates-dropdown/ . Il y a d'autres solutions possibles là-dedans.

Bonne chance.

jg314
la source
1

Les modèles peuvent être désactivés en les supprimant de la wp_themesvariable globale avant le chargement de la liste déroulante des modèles.

Exécutez ce code sur la page pour voir quels modèles s'affichent:

global $wp_themes;
$tema = wp_get_themes();
print_r($tema["child-theme folder name"]["Template Files"]);

Si votre modèle n'apparaît pas, le thème parent peut l'avoir désactivé dans le tableau.

Il pourrait apparaître, si vous exécutez ce code en front-end, car le thème parent pourrait le désarmer uniquement lors du chargement de la page de l'éditeur d'administration.

Téléchargez le thème parent et recherchez les fichiers $wp_themesetwp_get_themes(); pour trouver l'emplacement de ce code.

J'espère qu'ils vous ont donné un moyen de l'empêcher d'utiliser un filtre, sinon vous devrez peut-être rajouter les fichiers dans le thème enfant. Cela pourrait être utile: http://www.wpexplorer.com/wordpress-page-templates-plugin/

Levi Johansen
la source
0

Fixer le modèle de page ne s'affichant pas dans le menu déroulant, veuillez activer le plugin ci-dessous pour le corriger (au lieu de modifier les fichiers principaux de wordpress)

Ci-dessous le lien de téléchargement https://drive.google.com/file/d/1ycHQGdc_vQtvtfBaznJp1KRsEbcoRwxB/view?usp=sharing

Rohit Savaj
la source
2
N'installez jamais un plugin à partir d'un lien comme celui-ci! On ne peut pas lui faire confiance. Installez toujours les plugins à partir de sources fiables comme le référentiel de plugins Wordpress.
jasonlfunk
0

Avez-vous accidentellement déplacé ou supprimé le fichier style.css de la racine du thème?

Si c'est le cas, cela pourrait être le cas - recréez les thèmes style.css pour réactiver la liste déroulante du modèle.

Jason est mon nom
la source