web-dev-qa-db-fra.com

Comment un thème peut-il ne contenir aucun fichier d'en-tête ou de pied de page?

Certains thèmes que j'ai vus, tels que la thèse (célèbre) ou même quelques thèmes moins connus, ont juste un index.php (qui ne contient rien), functions.php (appelle leur cadre) et un style.css - et bien sûr le comments.php.

Ces thèmes ne vous indiquent pas exactement où ils stockent leur code CSS - évidemment dans l'en-tête de la file d'attente. Mais si je fais quelque chose comme mettre en file d'attente mes scripts et ensuite appeler get_header() et get_footer(), je reçois les avertissements évidents sur le fait de ne pas avoir un header.php et footer.php est faux.

Alors, quelqu'un peut-il me dire comment les thèmes s'en sortent avec index.php? J'ai lu la hiérarchie des modèles et, bien que tout soit vrai, retourne à index.php - comment se fait-il que ces personnes se débrouillent avec ce genre de choses?

Il convient de noter que ces types de thèmes ne comportent pas d'éléments tels que: header-custom.php ou des éléments similaires.

2
TheWebs

Vous devez simplement vous assurer que toutes les conditions nécessaires sont gérées correctement. Vous pouvez en savoir plus sur les balises conditionnelles WordPress disponibles.

Pour ne pas avoir de fichier header.php et footer.php dans votre thème WordPress actif, il vous suffira de créer un fichier index.php dans votre thème WordPress actif. Tant que vous avez le fichier de base index.php, tout va bien.

Certains thèmes fonctionneront entièrement sur des crochets. Je suggère de lire le API WordPress Plugin et de parcourir les options disponibles références de hook Action de WordPress et références de hook de filtre WordPress . Pour une liste complète de tous les crochets d'action et de filtrage dans WordPress, voir base de données de crochets WordPress d'Adam Brown .

Une fois que vous vous êtes familiarisé avec les points d'ancrage WordPress, vous pouvez alors inspecter votre thème WordPress actuellement actif pour les appels do_action(). Ce sont des crochets créés par le développeur de thème, que vous pouvez utiliser pour manipuler davantage votre thème.

En ce qui concerne le thème, notez que l'utilisateur n'en est pas responsable, mais plutôt au développeur du thème qui a créé le thème et l'a mis à la disposition du public. Vous pouvez essayer de contacter le développeur de thème d'origine et demander une liste des points d'ancrage disponibles utilisés dans le thème, ou demander au développeur de thème d'origine d'écrire plus de documentation sur le thème.

1
Michael Ecklund

footer et header.php sont totalement inutiles. Ces modèles et les fonctions get_footer () et get_header () sont purement des aides, des aides, des guides.

Bien sûr, vous pouvez démarrer tous vos modèles avec <html><head>...</head><body> etc., mais si vous souhaitez modifier votre modèle, vous devez modifier chaque fichier. C'est pourquoi header.php et footer.php ont été introduits, de sorte que vous n'avez qu'à les entrer une fois. .

Il existe également des méthodes alternatives telles que les wrappers de thème scribus qui utilisent un fichier wrapper.php.

Les seuls fichiers nécessaires pour obtenir un thème WordPress fonctionnel sont les suivants:

  • un index.php avec une boucle principale
  • un style.css avec un commentaire en haut détaillant le nom du thème

Tout le reste est facultatif. Donc, en réalité, ce n'est pas qu'il manque un header.php aux thèmes, mais d'autres thèmes ont ajouté un header.php dont ils n'avaient pas besoin.

Remarque: Il serait judicieux d'utiliser les fichiers d'en-tête et de pied de page même s'ils ne sont pas nécessaires. Tout comme single.php page.php ou functions.php ne sont pas nécessaires, ce sont toujours de bonnes choses à avoir.

1
Tom J Nowell

La thèse inclut à la fois les fichiers header.php et footer.php.

thesis> lib> html contient ces fichiers et d’autres.

Ces deux fichiers incluent des points d'ancrage et des filtres qui vous permettent d'ajouter du contenu et de filtrer la sortie des fonctions existantes.

Des thèmes tels que Thesis prennent en charge la personnalisation de différentes parties du thème à l'aide de fonctions personnalisées comprenant des crochets et des filtres vous permettant de modifier l'en-tête et le pied de page à partir de votre thème enfant ou du fichier custom_functions.php.

D'autres thèmes utilisent get_template_part, qui vous permet de copier une partie du modèle dans votre thème enfant et de le modifier afin que vos modifications ne soient pas perdues lors de la mise à jour de la structure de thème parent.

Pour les autres thèmes parents, vous devez copier le fichier de modèle dans votre thème enfant et le modifier à cet endroit.

L'utilisation de points d'ancrage et de filtres d'action est considérée par beaucoup comme un moyen plus efficace de personnaliser votre thème sans qu'il soit nécessaire de modifier les fichiers de thème parent principaux ni de copier le code du thème parent vers le fichier de thème personnalisé/fonctions personnalisées.

Thèse footer.php

<?php

/**
* Call footer elements.
*/
function thesis_footer_area() {
thesis_hook_before_footer();
thesis_footer();
thesis_hook_after_footer();
}

/**
* Display primary footer content.
*/
function thesis_footer() {
echo "\t<div id=\"footer\">\n";
thesis_hook_footer();
thesis_admin_link();
wp_footer();
echo "\t</div>\n";
}

Thèse header.php

<?php

function thesis_header_area() {
thesis_hook_before_header();
thesis_header();
thesis_hook_after_header();
}

function thesis_header() {
echo "\t<div id=\"header\">\n";
thesis_hook_header();
echo "\t</div>\n";
}

function thesis_default_header() {
thesis_hook_before_title();
thesis_title_and_tagline();
thesis_hook_after_title();
}

Voici un exemple d’ajout d’une fonction personnalisée pour l’attribution du pied de page à Thesis à l’aide du crochet thesis_hook_before_footer.

add_action('thesis_hook_before_footer', 'add_custom_attribution'); // Custom footer attribution

function add_custom_attribution () { ?>


    <p>&copy; 2007 - <?php echo date("Y"); ?> All Rights Reserved</p>
    <p>Site design by <a href="http://andrewnorcross.com/" title="Andrew Norcross -  This Is Where The Awesome Happens" target="_blank">Andrew Norcross</a></p>

<?php }

Thesis hooks & filters http://thesishooks.com/thesis-hook-list

0
Brad Dalton

header.php, footer.php et à mon avis, sidebar.php ne sont pas vraiment des fichiers nécessaires, ils sont juste là pour donner un contenu de code plus propre et moins déroutant, puisque vous avez lu la hiérarchie de modèles wp alors il ne devrait y avoir aucun problème pour comprendre pourquoi un thème n'a pas de fichier header.php ... Ouais, vous avez bien deviné, ... il a toujours un fichier index.php. :)

à côté de tout ce que je sais, vous faites peut-être référence au thème enfant :( qui n'a besoin que de styles.css dans sa forme de base.

0
Tamara

Cela pourrait être une question évidente, mais les thèmes que vous référencez thèmes enfants par hasard?

Ma société fonde tous les projets clients sur un thème parent qui définit des méthodes communes et un point de départ pour le code HTML. Ainsi, dans de nombreux cas, le thème enfant est simplement une feuille de style et quelques modèles adaptés aux types d'articles personnalisés.

0
jlengstorf