web-dev-qa-db-fra.com

WordPress fonctionne-t-il sans thème?

WordPress fonctionne-t-il sans thème? Si oui, alors comment ça marche? S'il vous plaît expliquer en bref.

Si WordPress affiche du contenu sans thème, qu'est-ce qui contrôle la sortie?

17
chsuthar

Je pense qu'il y a une chanson pour ça:

"Imaginez qu'il n'y ait pas de thème. C'est facile si vous essayez. Aucun enfer au-dessous de nous. Au-dessus de nous, rien que le ciel ..." ;-)

Donc, dans ce rêve imaginaire:

  • vous pouvez toujours récupérer les flux RSS de votre site:

    example.com/feed/
    
  • vous pouvez toujours vous connecter à votre backend:

    example.com/wp-login.php
    
  • vous pouvez toujours accéder au backend et y travailler (presque) comme d'habitude:

    example.com/wp-admin/
    
  • Les messages planification ne fonctionneront pas, vous recevrez donc le message programme manqué.

  • wp-cron ne sera pas fiable.

  • vous pouvez toujours accéder à /wp-admin/admin-ajax.php

  • vous pouvez utiliser les crochets template_redirect et tempate_include pour contrôler la sortie. Essayez par exemple ce petit plugin:

    <?php
    /** Plugin Name: No-Theme-Day **/
    add_action( 'template_redirect', 
        function()
        { 
            wp_die( __( "Jibby! It's the No-Theme-Day today!" ) ); 
        } 
    );
    
  • ...

ps: Pardonnez mon vendredi réponse - " Mais je ne suis pas le seul " ;-)

29
birgire

Étant donné que l’utilisation de WordPress sans thème est assez rare, ses détails techniques n’attirent pas beaucoup d’attention.

Vous devez d’abord comprendre qu’il existe de nombreux "points de terminaison" dans le noyau WordPress traitant des demandes.

  • le côté administrateur a ses propres (et nombreux), tels que wp-admin/index.php.
  • la face avant passe presque universellement à travers index.php à la racine même, mais elle est généralement "cachée" par de jolis permaliens

Si vous regardez le dernier fichier il a la ligne suivante:

define('WP_USE_THEMES', true);

Donc généralement / WordPress s'attend à ce que front-end ait toujours un thème et configure l'environnement d'exécution en conséquence. Cette constante ne contrôle pas beaucoup, seulement si les modèles de thèmes vont être chargés dans template-loader.php .

Notez que cela n'empêche pas les thèmes parent/enfant (s'ils sont présents) d'être chargés pendant le processus de démarrage principal.

Donc par défaut WordPress s'attend à ce qu'au moins un thème soit présent, activé et que des modèles soient utilisés à des fins d'affichage frontal.

Cependant, il s’agit simplement d’une question de valeurs par défaut et peut être complètement configuré. Dans ce cas, WordPress continuera de fonctionner pleinement du côté de l’administrateur, tandis que du côté frontal, toutes les demandes qui dépendent du modèle de thème cesseront d’afficher quoi que ce soit.

12
Rarst