web-dev-qa-db-fra.com

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

J'ai des problèmes avec les modèles dans Wordpress (multisite). J'ai créé un fichier à la racine de mon dossier enfant-theme (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 - Débloquer les permaliens - Vérifier les autorisations de mes fichiers - Vérifier si style.css se trouve à 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 cela fonctionne bien.

20
Tom

Juste dans Wordpress 4.9, il y a ce bogue: https://core.trac.wordpress.org/ticket/42573 provoquant une nouvelle analyse des fichiers de modèle une fois par heure.

Pour résoudre ce problème (jusqu'à ce qu'ils publient une nouvelle version WP avec cette version modifiée), 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 économisera les 2 heures que j'ai perdues à ce sujet ..

29
Jan Żankowski

Il y a un bug dans Wordpress 4.9.

J'ai trouvé ce plugin temporaire super simple. Je prévois de le désinstaller une fois le bogue corrigé, mais cela fonctionne très bien en attendant!

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

4
brilliantairic

Assurez-vous que vous avez 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' );
2
Isu

J'ai également eu ce problème avec un site sur WordPress Multisite et j'ai pu le résoudre en procédant comme suit:

  1. Accédez à http://example.com/wp-admin/network/themes.php (remplacez exemple.com par votre URL).
  2. Cliquez sur le lien "Modifier" sous le thème qui vous cause des problèmes.
  3. Dans la barre latérale droite, cliquez sur le nom du fichier de modèle qui ne s'affiche pas. Par exemple, il pourrait indiquer "Modèle de page d'événements (template_events.php)".
  4. Ne modifiez pas le 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 celui-ci devrait maintenant s'afficher dans la liste déroulante.

Si cela ne vous convient pas, je vous conseillerais de vérifier http://vanseodesign.com/wordpress/wp-page-templates-dropdown/ . Il y a d'autres solutions possibles ici.

Bonne chance.

2
jg314

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

Exécutez ce code sur la page pour voir quels modèles apparaissent:

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 supprimé du tableau.

Il pourrait apparaître, si vous exécutez ce code en frontal, car le thème parent pourrait ne le désélectionner que pendant le chargement de la page de l'éditeur d'administrateur.

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

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

1
Levi Johansen

Correction du modèle de page ne figurant pas dans le menu déroulant, veuillez activer le plugin ci-dessous pour le réparer (au lieu de changer les fichiers core de Wordpress)

Le lien ci-dessous vous permet de télécharger https://drive.google.com/file/d/1ycHQGdc_vQtvtfBaznJp1KRsEbcoRwxB/view?usp=sharing

0
Rohit Savaj

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

Si tel est le cas, il pourrait s'agir de ceci: recréez le fichier themes style.css pour réactiver le modèle de liste déroulante.

0
Jason Is My Name