


Comment développer un plugin WordPress qui génère automatiquement une table des matières
Comment développer un plugin WordPress qui génère automatiquement une table des matières
À mesure que les articles de blog deviennent de plus en plus riches en contenu, l'amélioration de l'expérience de lecture est devenue une considération importante. La génération automatique d'une table des matières est une méthode courante pour améliorer l'expérience de lecture. Développez un plug-in qui génère automatiquement une table des matières sur la plateforme WordPress pour aider les lecteurs à parcourir et naviguer rapidement dans le contenu des articles. Cet article explique comment développer un plug-in WordPress qui génère automatiquement une table des matières et fournit des exemples de code pertinents à titre de référence.
Tout d'abord, nous devons enregistrer un nouveau widget (Widget) dans le plugin WordPress pour afficher la table des matières de l'article. Ce qui suit est un exemple simple d'enregistrement d'un widget d'annuaire :
class AutoTOC_Widget extends WP_Widget { public function __construct() { parent::__construct( 'auto_toc_widget', '自动生成目录', array( 'description' => '在文章中自动生成目录' ) ); } public function widget( $args, $instance ) { // 在文章中显示自动生成的目录 } public function form( $instance ) { // 小部件设置表单 } public function update( $new_instance, $old_instance ) { // 更新小部件设置 } }
Ensuite, nous devons écrire du code dans la méthode widget()
du widget pour implémenter la logique de génération d'annuaire. Tout d’abord, nous devons obtenir le contenu de l’article et utiliser une expression régulière pour faire correspondre tous les éléments du titre. Voici un exemple de code : widget()
方法中编写代码来实现目录生成的逻辑。首先,我们需要获取文章的内容,并使用正则表达式来匹配所有标题元素。以下是一个示例的代码:
public function widget( $args, $instance ) { global $post; $post_id = $post->ID; $post_content = $post->post_content; // 正则表达式匹配所有标题元素 preg_match_all( '/<h([1-6])>(.*?)</h>/', $post_content, $matches, PREG_SET_ORDER ); $toc_items = array(); // 构建目录项数组 foreach ( $matches as $match ) { $toc_item = array( 'title' => $match[2], 'level' => $match[1], 'anchor' => sanitize_title( $match[2] ) ); $toc_items[] = $toc_item; } // 显示目录部件的HTML输出 }
在上述代码中,我们使用了preg_match_all()
函数来匹配文章内容中的标题元素,并将匹配结果存储在$matches
数组中。然后,我们遍历$matches
数组,构建一个目录项数组$toc_items
,其中包含标题的文本、级别和锚点。
最后,我们需要在目录小部件的widget()
方法中生成HTML输出并显示在文章中。以下是一个示例的代码:
public function widget( $args, $instance ) { global $post; $post_id = $post->ID; // 生成目录HTML输出 $output = '<div class="auto-toc">'; $output .= '<h2 id="instance-title">' . $instance['title'] . '</h2>'; $output .= '<ul>'; foreach ( $toc_items as $item ) { $output .= '<li><a href="#' . $item['anchor'] . '">' . $item['title'] . '</a></li>'; } $output .= '</ul>'; $output .= '</div>'; echo $output; }
在上述代码中,我们使用了一个foreach
循环来遍历目录项数组$toc_items
,生成目录的HTML输出。每个目录项都被包装在一个列表项的<li>
标签中,并包含一个锚点链接,使读者能够通过点击在文章中导航到相应的标题处。
最后,我们还可以通过在小部件的form()
方法中添加一些设置选项,让用户能够自定义目录显示的标题。以下是一个简单的示例代码:
public function form( $instance ) { $title = isset( $instance['title'] ) ? $instance['title'] : '目录'; echo '<p>'; echo '<label for="' . $this->get_field_id( 'title' ) . '">标题:</label>'; echo '<input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $title ) . '">'; echo '</p>'; }
在上述代码中,我们使用了一个input
表单元素,允许用户输入自定义的目录标题。该值将被保存在插件的设置中,并在小部件的widget()
rrreee
preg_match_all()
pour faire correspondre les éléments de titre dans le contenu de l'article et stockons les résultats correspondants dans $matches tableau. Nous parcourons ensuite le tableau <code>$matches
et construisons un tableau d'éléments de table des matières $toc_items
qui contient le texte, le niveau et l'ancre du titre. Enfin, nous devons générer une sortie HTML dans la méthode widget()
du widget de table des matières et l'afficher dans l'article. Voici le code pour un exemple : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons une boucle foreach
pour parcourir le tableau d'éléments du catalogue $toc_items
et générer la sortie HTML de le catalogue. Chaque élément de la table des matières est enveloppé dans la balise <li>
d'un élément de liste et contient un lien d'ancrage qui permet aux lecteurs de cliquer pour naviguer dans l'article jusqu'au titre correspondant. 🎜🎜Enfin, nous pouvons également ajouter quelques options de paramétrage dans la méthode form()
du widget pour permettre aux utilisateurs de personnaliser le titre affiché dans le répertoire. Voici un exemple de code simple : 🎜rrreee🎜 Dans le code ci-dessus, nous utilisons un élément de formulaire input
pour permettre à l'utilisateur de saisir un titre de répertoire personnalisé. Cette valeur sera enregistrée dans les paramètres du plugin et utilisée dans la méthode widget()
du widget. 🎜🎜Grâce à l'exemple de code ci-dessus, nous pouvons développer un plug-in qui génère automatiquement une table des matières basée sur la plateforme WordPress pour aider à améliorer l'expérience de lecture des articles de blog. Les lecteurs peuvent rapidement parcourir et naviguer dans le contenu de l'article en cliquant sur les liens dans la table des matières. Le développement de votre propre plug-in WordPress peut être étendu et personnalisé en fonction des besoins réels, offrant ainsi une meilleure expérience utilisateur aux lecteurs. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Voulez-vous déplacer votre blog de wordpress.com à wordpress.org? De nombreux débutants commencent par wordpress.com mais réalisent rapidement leurs limites et veulent passer à la plate-forme WordPress.org auto-hébergée. Dans ce guide étape par étape, nous vous montrerons comment déplacer correctement votre blog de wordpress.com à wordpress.org. Pourquoi migrer de wordpress.com vers wordpress.org? Wordpress.com permet à n'importe qui de créer un compte

Cherchez-vous des moyens d'automatiser votre site Web WordPress et vos comptes de médias sociaux? Avec l'automatisation, vous pourrez partager automatiquement vos articles de blog WordPress ou vos mises à jour sur Facebook, Twitter, LinkedIn, Instagram et plus encore. Dans cet article, nous vous montrerons comment automatiser facilement WordPress et les médias sociaux en utilisant IFTTT, Zapier et Uncanny Automator. Pourquoi automatiser WordPress et les médias sociaux? Automatiser votre wordpre

Il y a quelques jours à peine, l'un de nos utilisateurs a signalé un problème inhabituel. Le problème est qu'il atteint la limite des éléments de menu personnalisés. Tout contenu qu'il enregistre après avoir atteint la limite de l'élément de menu ne sera pas enregistré du tout. Nous n'avons jamais entendu parler de ce problème, nous avons donc décidé de l'essayer sur notre installation locale. Plus de 200 éléments de menu ont été créés et enregistrés. L'effet est très bon. Déplacez 100 éléments dans la liste déroulante et économisez-les très bien. Ensuite, nous savions que cela avait à voir avec le serveur. Après de nouvelles recherches, il semble que beaucoup d'autres aient rencontré le même problème. Après avoir creusé plus profondément, nous avons trouvé un billet Trac (# 14134) qui a mis en évidence ce problème. Lire très

Avez-vous besoin d'ajouter des métafields personnalisés à la taxonomie personnalisée dans WordPress? La taxonomie personnalisée vous permet d'organiser du contenu en plus des catégories et des balises. Parfois, il est utile d'ajouter d'autres champs pour les décrire. Dans cet article, nous vous montrerons comment ajouter d'autres métafields à la taxonomie qu'ils créent. Quand des métafields personnalisés devraient-ils être ajoutés à la taxonomie personnalisée? Lorsque vous créez un nouveau contenu sur votre site WordPress, vous pouvez l'organiser à l'aide de deux taxonomie par défaut (catégorie et balise). Certains sites Web bénéficient de l'utilisation de la taxonomie personnalisée. Ceux-ci vous permettent de trier le contenu d'autres manières. Par exemple,

Windows Live Writer est un outil polyvalent qui vous permet de publier des articles directement de votre bureau vers votre blog WordPress. Cela signifie que vous n'avez pas besoin de vous connecter au panneau d'administration WordPress pour mettre à jour votre blog. Dans ce tutoriel, je vais vous montrer comment activer la publication de bureau pour votre blog WordPress à l'aide de Windows Live Writer. Comment configurer Windows Live Writer sur WordPress Étape 1: Pour utiliser Windows Live Writer dans WordPr

Récemment, l'un de nos utilisateurs a signalé un problème d'installation très étrange. Lors de la rédaction d'un article, ils ne peuvent rien voir qu'ils écrivent. Parce que le texte de l'éditeur de publication est blanc. De plus, tous les boutons de l'éditeur visuel sont manquants, et la possibilité de passer du visuel à HTML ne fonctionne pas non plus. Dans cet article, nous vous montrerons comment résoudre le texte blanc et les problèmes de bouton manquant dans l'éditeur visuel WordPress. Soyez une note débutante: Si vous recherchez des boutons cachés qui peuvent être vus dans des captures d'écran d'autres sites Web, vous pouvez chercher un évier de cuisine. Vous devez cliquer sur l'icône de l'évier de la cuisine pour voir d'autres options telles que souligner, copier de Word, etc.

Voulez-vous afficher des avatars dans les e-mails utilisateur dans WordPress? Gravatar est un service réseau qui connecte l'adresse e-mail d'un utilisateur à un avatar en ligne. WordPress affiche automatiquement les images de profil des visiteurs dans la section des commentaires, mais vous pouvez également les ajouter à d'autres domaines du site. Dans cet article, nous vous montrerons comment afficher des avatars dans les e-mails utilisateur dans WordPress. Qu'est-ce que Gravatar et pourquoi devrais-je l'afficher? Gravatar signifie des avatars reconnus à l'échelle mondiale, qui permet aux gens de lier des images à leurs adresses e-mail. Si le site Web prend en charge

Voulez-vous modifier l'emplacement de téléchargement de médias par défaut dans WordPress? Le déplacement des fichiers multimédias vers d'autres dossiers peut améliorer la vitesse et les performances du site Web et vous aider à créer des sauvegardes plus rapidement. Il vous donne également la liberté d'organiser vos fichiers de la manière qui vous convient le mieux. Dans cet article, nous vous montrerons comment modifier l'emplacement de téléchargement de médias par défaut dans WordPress. Pourquoi modifier l'emplacement de téléchargement des médias par défaut? Par défaut, WordPress stocke toutes les images et autres fichiers multimédias dans le dossier / wp-content / uploads /. Dans ce dossier, vous trouverez des enfants de différentes années et mois


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Dreamweaver CS6
Outils de développement Web visuel

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP