recherche
MaisonTutoriel CMSWordPresseComment 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

Sep 05, 2023 am 08:07 AM
开发流程plugin wordpressGénérer automatiquement un répertoire

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

Dans le code ci-dessus, nous utilisons la fonction 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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment déplacer facilement votre blog de wordpress.com à wordpress.orgComment déplacer facilement votre blog de wordpress.com à wordpress.orgApr 18, 2025 am 11:33 AM

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

Comment automatiser WordPress et les médias sociaux avec IFTTT (et plus)Comment automatiser WordPress et les médias sociaux avec IFTTT (et plus)Apr 18, 2025 am 11:27 AM

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

Comment corriger les limites des éléments de menu personnalisés dans WordPressComment corriger les limites des éléments de menu personnalisés dans WordPressApr 18, 2025 am 11:18 AM

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

Comment ajouter des métafields personnalisés à la taxonomie personnalisée dans WordPressComment ajouter des métafields personnalisés à la taxonomie personnalisée dans WordPressApr 18, 2025 am 11:11 AM

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,

Comment publier à distance sur WordPress à l'aide de Windows Live WriterComment publier à distance sur WordPress à l'aide de Windows Live WriterApr 18, 2025 am 11:02 AM

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

Comment réparer le texte blanc et les boutons manquants dans l'éditeur visuel WordPressComment réparer le texte blanc et les boutons manquants dans l'éditeur visuel WordPressApr 18, 2025 am 10:52 AM

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.

Comment afficher Avatar dans l'e-mail utilisateur dans WordPressComment afficher Avatar dans l'e-mail utilisateur dans WordPressApr 18, 2025 am 10:51 AM

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

Comment modifier l'emplacement de téléchargement de médias par défaut dans wordpressComment modifier l'emplacement de téléchargement de médias par défaut dans wordpressApr 18, 2025 am 10:47 AM

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

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

MinGW - GNU minimaliste pour Windows

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

Dreamweaver CS6

Outils de développement Web visuel

mPDF

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

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP