Giter Club home page Giter Club logo

base-theme-wordpress's Introduction

Exemple de code pour theme WordPress

Les fichiers de base

style.css : Donnez un nom à votre thème index.php : Template par défaut, une place pour commencer.

Les "include"

Ne pas utiliser include de PHP. WordPress à des fonctions spécialisées pour cela

Regrouper le code commun à vos pages avec :

Le code HTML généré est celui retourné par votre fichier de template qui lui même inclut d'autres fichiers. Il n'est donc pas étonnant de débuter une balise dans header.php est de la finir dans footer.php.

Les fichiers CSS et JavaScript

Ne pas les placer dans vos templates. Laisser WordPress le faire pour vous.

Rq : La fonction utilisée pour le lien du fichier CSS : get_stylesheet_directory_uri, peut être utile pour intégrer des liens vers des éléments statiques dans vos templates. Mais je vous décourage de faire cela. Mettez les en place par les CSS, il suffit alors de faire un lien relatif depuis le code du fichier CSS.

Les Templates

Ce sont eux qui affichent le contenu par le biais de la 'boucle' WordPress.

  • index.php : Template par défaut
  • single.php : Template pour afficher un seul Article (affichage complet).

index.php n'est pas l'endroit où vous devez placer en premier le code de vos pages. Préférez un template plus approprié :

Trouver les fichiers de template a utiliser

  • La variable globale $template contient le template actuellement utilisé.
  • La fonction body_class que l'on utilise dans la balise BODY, donne de bonnes indications sur le nom de template que l'on pourrait utiliser.

Ajoutez le code suivant à functions.php pour afficher ces informations de template

Les types personnalises

WordPress possède deux types (Post et Page). Mais vous pouvez ajouter vos propres types de contenu :

Quand vous faites un type personnalisé, vous devez réfléchir à :

Lire la documentation et penser à l'option supports qui sert à dire quelles fonctionnalités de WordPress sont utiles à votre nouveau contenu.

Les taxonomies personnalisees

WordPress possède deux taxonomies (Tag et Category). Mais vous pouvez ajouter vos propres classements (taxonomies) :

Quand vous faites une taxonomie personnalisée, vous devez réfléchir à :

Lire la documentation et penser à l'option hierarchical qui sert à dire si la nouvelle taxonomie doit se comporter comme des Tag ou comme une Category.

Vous pouvez associer une description à chaque terme (sur la page d'administration de la taxonomie). Utiliser la fonction term_description pour l'afficher.

Les champs de saisie personnalises

Quand vous ajoutez un type de contenu personnalisé, WordPress vous laisse choisir les champs de formulaire standard présenté à l'éditeur du site (option supports de register_post_type).

Mais vous pouvez ajouter vos propres champs de formulaire.

Dans l'interface d'administration, demander l'installation du plug-in "Meta Box".

Avec, vous pourrez :

Declarer les champs de formulaire

Les champs de formulaires ajoutés par "Meta Box" sont regroupés par Boîte.

Pour chaque Boîte vous devez penser :

https://github.com/rilwis/meta-box/blob/master/demo/demo.php

Lire la documentation et penser à regarder les options des différents types de champs.

autocomplete button checkbox checkbox_list color date datetime divider file file_advanced file_input heading hidden image image_advanced image_select map number oembed password plupload_image post radio range select select_advanced slider taxonomy taxonomy_advanced text textarea thickbox_image time url user wysiwyg

Afficher les valeurs personnalisees

(version longue indépendante du plugin, lire titre suivant pour version courte).

Pour afficher dans le template les champs personnalisés :

Ensuite, utiliser ce code à l'endroit où vous voulez afficher la valeur.

Rq. les print_r sont juste pour les explications. Ne pas les inclure dans vos pages !

Fonctions de "meta box" pour lire les valeurs personnalisees

Utilise un "helper" fourni par le plug-in. Mais comprenez que les métadonnées sont gérées par WordPress, tout plug-in ne fait qu'ajouter des facilités de saisie. Rien d'autre.

rwmb_meta est une fonction fournie par "meta box" pour afficher plus simplement les valeurs :

  • Si c'est une valeur unique:
    • Elle retourne simplement cette valeur
  • Si c'est un type complexe (l'indiquer en argument à l'appel)
    • Elle retourne un tableau avec des clefs pour les valeurs
  • Si vous avez utilisé la propriété 'clone' => true
    • Elle retourne un tableau, vous devez obligatoirement passer par elle dans ce cas.

Les menus

Menu defini par l'editeur du site

Ce sont les menus qui peuvent être personnalisés dans l'interface d'administration.

Menu integre au template

Genere par WordPress

Si vous avez défini des taxonomies personnalisées, vous voulez sans doute permettre au visiteur du site d'utiliser ces "classements" pour naviguer sur le site.

Simplement, demandez à WordPress de faire un menu (liste) avec les termes de votre taxonomie.

Par le code

Il existe des fonctions donnant l'URL :

Liens propres a un "post"

the_permalink donne le lien vers la page d'un "post" (ou contenu personnalisé). Mais vous pouvez aussi :

  • Afficher les "tags" : the_tags
  • Afficher la ou les "category" : the_category
  • Mais aussi les taxonomies personnalisées : the_terms
    • Rq: contrairement aux autres elle demande l'ID du "post" en paramètre ($post->ID).

Pour chaque il existe des variantes suivant que vous vouliez gérez vous même l'affichage (boucle en PHP) ou laisser WordPress le faire pour vous.

Par une seconde "boucle"

Si vous voulez afficher deux contenus sans rapport sur la même page, vous devez faire une seconde boucle :

Lire la documentation de WP_Query ! Pour connaître ses paramètres.

Modifier la requete de WordPress

Vous ne devez pas utiliser WP_Query pour changer le contenu affiché par défaut (sauf pour les pages statiques). Il faut modifier la requête faite par WordPress.

Vous devez :

Page listant une taxonomie

Si vous voulez faire une page qui liste tous les termes de la taxonomie :

Liste de contenus (liens) triee par taxonomie

Quand l'on utilise une taxonomie, il existe une page pour chaque terme (/competences/HTML, /competences/CSS...).

Si vous voulez faire une page qui liste tous les contenus triés suivant les termes de la taxonomie :

  • Dans l'interface d'administration, faire une page statique du même nom que la taxonomie (elle sera affichée à l’URL /competences)
  • Placer un code affichera vos contenus triés, dans le template spécifique à la page (page-competences.php)
    • Rq: le code fourni fait plusieurs requêtes, ce qui n'est pas une bonne pratique. Mais bon... c'est pour rester simple.

Les images

L'image a la une (vignette/thumbnail)

Si vous n'avez qu'une image ou qu'une de vos images "symbolise" le contenu : utilisez cette fonction.

Les tailles d'images

Les utilisateurs de votre site n'auront qu'à télécharger les images associées au contenu. WordPress prend en charge leurs redimensionnements.

Les images des champs personnalises.

WordPress stocke simplement un identifiant pour les images (attachement) que vous avez associé à votre poste.

base-theme-wordpress's People

Contributors

ppierre avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

passeboism

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.