web-dev-qa-db-fra.com

Est-ce que j'utilise les tags d'ouverture et de fermeture de php?

J'ai installé un thème pour enfants qui fonctionne bien. Il importe le fichier principal.css et a des styles css personnalisés, ainsi que des fichiers header.php et footer.php personnalisés.

Lorsque vous utilisez functions.php dans un thème enfant, il ajoute le thème enfant functions.php au thème principal. Dois-je envelopper mes fonctions dans l'ouverture et la fermeture des balises php ou puis-je simplement ajouter les éléments suivants sans balises php add_image_size( 'related-thumbnail', 130, 130, true );

5
Anagio

Les balises d'ouverture sont obligatoires, les balises de fermeture ne sont nécessaires que si vous avez un autre code (HTML, CSS) après celles-ci dans le même fichier. Voir PHP manuel .

Une balise de fermeture sans rien après peut entraîner des problèmes avec les fichiers inclus s'ils contiennent un BOM . C’est l’une des raisons pour lesquelles toutes les balises de fermeture facultatives étaient supprimées pour WordPress 3.4 dans les fichiers core. Suivez ce style. C'est utile.

Voici un exemple tiré de functions.php du thème _s du thème Automattic .

8
fuxia

La balise d'ouverture <?php est obligatoire. Le dernier ?>, pas.
Mais il est recommandé ne pas avoir la balise de fermeture du tout , car cela peut casser/geler le site en raison d'espaces blancs supplémentaires après celle-ci.

Il est également recommandé de ne pas utiliser la balise d'ouverture courte <?, car certains serveurs peuvent ne pas l'activer .

Ensuite, vous pouvez avoir du code HTML en cours d'impression au milieu du code PHP, lorsque ce dernier est fermé et rouvert après la fin de l'ancien.
Ou inversement, lorsque le fichier PHP commence par Html et que le fichier PHP est ouvert-fermé et que Html suit.

Documentation (comme d'habitude là-bas, les commentaires méritent d'être lus aussi):
http://php.net/manual/fr/language.basic-syntax.phpmode.php

Dans le contexte de cette question, si le functions.php du parent a une balise de fermeture, vérifiez s'il n'y a pas d'espace blanc après ou supprimez-la simplement.

Et dans le functions.php de l'enfant, mettez simplement la balise d'ouverture et commencez à écrire/coller tous les mods/améliorations nécessaires. Veiller à ce que les <?php ?> supplémentaires soient sous contrôle.

6
brasofilo

Votre fichier php devrait toujours commencer par une balise d'ouverture <?php.

0
Andrew Dover