Table des matières Plus

Table des matières Plus est un plugin WordPress puissant mais convivial qui crée automatiquement un index ou une table des matières (TOC) spécifique au contexte pour les longues pages (et les types de publication personnalisés). Plus qu'un simple plugin de table des matières, ce plugin peut également générer un plan du site répertoriant les pages et/ou les catégories de l'ensemble de votre site.

Description

Conçue dès le départ et en gardant Wikipédia à l'esprit, la table des matières apparaît par défaut avant le premier titre d'une page. Cela permet à l'auteur d'insérer un contenu introductif qui peut résumer ou présenter le reste de la page. Elle utilise également un schéma de numérotation unique qui ne se perd pas à travers les différences de CSS entre les thèmes.

Ce plugin est un excellent compagnon pour les sites riches en contenu tels que les configurations orientées système de gestion de contenu. Cela dit, les blogueurs bénéficient également des mêmes avantages lorsqu'ils rédigent de longs articles structurés.

ToC Plus comprend un panneau d'options d'administration où vous pouvez personnaliser les paramètres tels que la position d'affichage, définir le nombre minimum de titres avant qu'un index ne soit affiché, d'autres apparences, et plus encore. Pour les utilisateurs avancés, développez les options avancées pour affiner davantage son comportement, notamment :

  • Exclure les niveaux de titres indésirables comme h5 et h6 de l'inclusion ;
  • Désactiver la sortie du fichier CSS inclus ;
  • Ajuster le décalage supérieur et plus encore.

En utilisant des shortcodes, vous pouvez outrepasser le comportement par défaut, comme des exclusions spéciales sur une page spécifique ou même pour masquer complètement la table des matières.

Préférez-vous inclure l'index dans la barre latérale ? Allez dans Apparence > Widgets et faites glisser TOC+ vers la barre latérale et la position souhaitées.

Les types de publication personnalisés sont pris en charge, cependant, l'insertion automatique ne fonctionne que lorsque the_content() a été utilisé par le type de publication personnalisé. Chaque type de publication apparaîtra dans le panneau d'options, alors activez ceux que vous souhaitez.

Captures d'écran

Un exemple de la table des matières, positionnée en haut, alignée à droite, et d'une largeur de 275px
Un exemple du shortcode sitemap_pages
Un exemple du shortcode sitemap_posts
Le panneau d'options trouvé dans Paramètres > TOC+
Certaines options avancées
L'onglet sitemap

Installer / Mettre à jour

Installez le plugin en recherchant Table of Contents Plus depuis l'écran Ajouter un plugin, ou directement depuis le dépôt de plugins WordPress.

Il n'y a pas d'instructions de mise à jour spéciales. Écrasez votre dossier existant avec la dernière version ou utilisez l'approche simplifiée dans le menu du plugin. Vos options ne seront pas perdues.

Aide

L'approche la plus simple

Pour les impatients, tout ce que vous avez à faire est d'activer le plugin.

Le plugin appliquera les paramètres par défaut et produira la table des matières avant le premier titre sur les pages (pas les articles, ni les types de publication personnalisés) comportant quatre titres ou plus.

Aucun shortcode n'est nécessaire.

Où est ma table des matières ?

  1. Dans la plupart des cas, l'article, la page ou le type de publication personnalisé a moins que le nombre minimum de titres. Par défaut, ce nombre est de quatre, alors assurez-vous d'avoir au moins quatre titres dans votre contenu. Si vous souhaitez modifier cette valeur, vous la trouverez sous « Options principales » > « Afficher quand ».
  2. L'insertion automatique est-elle activée pour votre type de contenu ? Par défaut, seules les pages sont activées.
  3. Avez-vous [no_toc] quelque part dans le contenu ? Cela désactivera l'index pour l'article, la page ou le type de publication personnalisé actuel.
  4. Si vous utilisez le widget TOC+, vérifiez si vous avez activé « Afficher la table des matières uniquement dans la barre latérale », car cela limitera son affichage à la barre latérale uniquement. Vous pouvez vérifier en allant dans Apparence > Widgets.
  5. Vous avez peut-être restreint la génération à une correspondance de chemin d'URL. Le paramètre se trouve dans la section avancée sous Options principales.

Comment puis-je empêcher l'affichage de la table des matières sur une seule page ?

Placez le shortcode [no_toc] suivant n'importe où sur la page pour supprimer la table des matières. Ceci est connu sous le nom de shortcode et fonctionne pour les articles, les pages et les types de publication personnalisés qui utilisent the_content().

J'ai défini le retour à la ligne à gauche ou à droite, mais les titres ne s'enroulent pas autour de la table des matières

Cela se produit normalement lorsqu'il y a une directive CSS clear dans ou autour du titre provenant du thème (Twenty Eleven et Twenty Twelve sont deux thèmes qui font cela). Cette directive indique à l'agent utilisateur de réinitialiser les spécifications de retour à la ligne précédentes.

Vous pouvez ajuster le CSS de votre thème ou essayer de déplacer la position de la table des matières en haut de la page.

Essayez d'ajouter le CSS suivant pour permettre au retour à la ligne de se produire autour de la table des matières :

h1, h2, h3, h4, h5, h6 { clear: none; }

Comment inclure le nom de la page dans le titre de la table des matières ?

Comme le titre de la page change en fonction de la page que vous consultez, vous pouvez utiliser la variable spéciale suivante pour insérer automatiquement le titre de la page dans l'en-tête de la table des matières :

%PAGE_NAME%

Vous pouvez l'utiliser tel quel ou placer du texte de chaque côté de la variable.

À titre d'exemple : si votre page s'appelle Grandes Espérances et que le titre de votre table des matières est défini sur Contenu pour %PAGE_NAME%, le titre final serait Contenu pour Grandes Espérances

Mon site a 100 pages mais je ne veux que la table des matières apparaisse sur 10 d'entre elles

Vous pourriez mettre [no_toc] sur les 90 pages, mais ce ne serait pas amusant... alors essayez ceci :

  1. Allez dans Réglages > TOC+ et désactivez l'option d'insertion automatique pour les pages (ou le type de contenu avec lequel vous travaillez).
  2. Ajoutez [toc] sur les 10 pages qui en ont besoin. Notez que la table des matières apparaîtra là où vous avez placé le shortcode.

Alternativement, vous pourriez également expérimenter avec l'option de restriction de chemin si les pages sur lesquelles vous souhaitez inclure l'index se trouvent toutes dans une certaine section de votre site (par exemple /doc/).

Je veux ignorer certains titres

Utilisez l'option « exclure les titres » si vous souhaitez ignorer certains titres. Séparez plusieurs titres par une barre verticale |. Utilisez un astérisque * comme joker pour faire correspondre d'autres textes. Notez que cela n'est pas sensible à la casse. Voici quelques exemples :

  • Fruit* ignore les titres commençant par Fruit
  • *Fruit Diet* ignore les titres contenant Fruit Diet quelque part dans le titre
  • Apple Tree|Oranges|Yellow Bananas ignore les titres qui sont exactement Apple TreeOranges ou Yellow Bananas

Puis-je avoir la table des matières dans la barre latérale ?

Utilisez le widget TOC+ et faites-le glisser dans la position souhaitée. Si vous souhaitez que la table des matières ne s'affiche que dans la barre latérale, assurez-vous de cocher cette option dans le widget.

Contrairement à Wikipédia, je veux que toutes mes ancres soient en minuscules et utilisent des tirets plutôt que des underscores

Il existe deux options qui vous permettent d'ajuster la casse et l'utilisation des traits d'union. Si vous en avez encore besoin, vous pouvez le peaufiner un peu plus en l'attachant au filtre toc_url_anchor_target. Voir la section développeurs ci-dessous pour un exemple.

Je voudrais intégrer un sitemap

  1. Créez une page pour votre sitemap (si vous en avez déjà une, utilisez-la à la place).
  2. Ajoutez [sitemap] dans votre page et enregistrez.

Ce qui précède est l'exemple le plus simple d'intégration d'un sitemap répertoriant toutes les pages et catégories. Vous pouvez personnaliser les options du sitemap sous Paramètres > TOC+ ou consulter certaines utilisations plus avancées avec les shortcodes liés au sitemap ci-dessous.

Vous pourriez également intégrer un sitemap en utilisant un widget de texte et en collant l'un des shortcodes du sitemap.

Le sitemap utilise une police de caractères étrange, différente du reste du site

Aucun style supplémentaire n'est créé pour le sitemap, il hérite plutôt des styles que vous avez utilisés lors de l'ajout du shortcode. Si vous avez copié-collé, vous avez probablement également copié les balises « code » qui l'entourent, alors supprimez-les dans ce cas.

Dans la plupart des cas, essayez d'avoir le shortcode sur sa propre ligne, sans rien avant ni après les crochets.

Shortcodes

Le plugin a été conçu pour être aussi transparent et indolore que possible et ne nécessitait pas l'insertion d'un shortcode pour fonctionner. Cependant, l'utilisation du shortcode vous permet de contrôler entièrement la position de la table des matières dans votre page. Les shortcodes suivants sont disponibles avec ce plugin.

Lorsque les paramètres sont omis pour les shortcodes ci-dessous, ils utiliseront les paramètres que vous avez définis sous Paramètres > TOC+.

[toc]

Vous permet de générer la table des matières à la position souhaitée. Utile également pour les sites qui ne nécessitent une table des matières que sur une petite poignée de pages.

Attributs :

  • label : texte, titre de la table des matières
  • no_label : true/false, affiche ou masque le titre
  • wrapping : texte, soit « left » soit « right »
  • heading_levels : nombres, cela vous permet de sélectionner les niveaux de titres que vous souhaitez inclure dans la table des matières. Séparez plusieurs niveaux par une virgule. Exemple : inclure les titres 3, 4 et 5 mais exclure les autres avec heading_levels="3,4,5"
  • exclude : texte, entrez les titres à exclure. Séparez plusieurs titres par une barre verticale |. Utilisez un astérisque * comme joker pour faire correspondre d'autres textes. Vous pouvez également utiliser des expressions régulières pour une correspondance plus avancée.
  • class : texte, entrez les classes CSS à ajouter au conteneur. Séparez plusieurs classes par un espace.

[no_toc]

Permet de désactiver la table des matières pour l'article, la page ou le type d'article personnalisé actuel.

[sitemap]

Produit une liste de toutes les pages et catégories de votre site. Vous pouvez l'utiliser sur n'importe quel article, page ou même dans un widget de texte.

[sitemap_pages]

Permet d'imprimer une liste uniquement des pages.

Attributs :

  • heading : nombre entre 1 et 6, définit quel titre html utiliser
  • label : texte, titre de la liste
  • no_label : true/false, affiche ou masque le titre de la liste
  • exclude : IDs des pages ou catégories à exclure
  • exclude_tree : ID de la page ou catégorie à exclure, y compris tous ses descendants

[sitemap_categories]

Similaire à [sitemap_pages] mais pour les catégories.

[sitemap_posts]

Ceci vous permet d'imprimer un index de tous les articles publiés sur votre site. Par défaut, les articles sont listés par ordre alphabétique regroupés par leur première lettre. Il existe des classes CSS pour chaque section, lettre et liste vous permettant de personnaliser l'apparence.

Attributs :

  • order : texte, soit ASC soit DESC
  • orderby : texte, les options populaires incluent « title », « date », « ID » et « rand ». Voir WP_Query pour une liste.
  • separate : true/false (par défaut true), ne sépare pas les listes par première lettre lorsqu'il est défini sur false.

Pour les développeurs

Comment puis-je personnaliser mes ancres ?

Si vous n'êtes toujours pas satisfait des ancres, vous pouvez les modifier selon vos besoins via une fonction personnalisée accrochée au filtre toc_url_anchor_target. Par exemple, placez l'extrait de code ci-dessous dans votre fichier functions.php pour convertir toutes les ancres en majuscules.

function my_custom_anchor( $anchor ) {
	return strtoupper( $anchor );
}
add_filter( 'toc_url_anchor_target', 'my_custom_anchor' );

toc_get_index( $content = ”, $prefix_url = ” )

Retourne une chaîne formatée HTML de la table des matières sans les balises UL ou OL environnantes pour permettre au thème de fournir ses propres ID et/ou classes à la liste externe.

Les deux paramètres sont optionnels :

  • $content est le contenu entier avec les titres. S'il est vide, il utilisera par défaut le contenu actuel trouvé dans $post (par exemple, dans « la boucle »).
  • $prefix_url est l'URL à préfixer à l'ancre. Si une chaîne a été fournie, elle sera utilisée telle quelle. S'il est défini sur true alors il essaiera d'obtenir le permalien de l'objet $post.

Ces exemples supposent que vous êtes dans « la boucle » :

  1. Obtenir l'index de la page actuelle :

echo '<ul id="my_toc">' . toc_get_index() . '</ul>';

2. Créer une liste de tous les enfants et de leurs titres :

$children = new WP_Query(array(
  'post_parent' => get_the_ID(),
  'posts_per_page' => -1	// get all children
));
while ( $children->have_posts() ) {
  $children->the_post();
  echo 
 '<h3>' . get_the_title() . '</h3>' .
 '<ul>' . toc_get_index( get_the_content(), get_permalink( $children->post->ID ) ) . '</ul>'
  ;
}
wp_reset_postdata();