Inhaltsverzeichnis
Table of Contents Settings
Heim CMS-Tutorial WordDrücken Sie So entwickeln Sie ein WordPress-Plugin, das automatisch Verzeichnisbäume generiert

So entwickeln Sie ein WordPress-Plugin, das automatisch Verzeichnisbäume generiert

Sep 06, 2023 am 09:55 AM
WordPress-Plugin-Entwicklung (Plugin-Entwicklung)

So entwickeln Sie ein WordPress-Plugin, das automatisch Verzeichnisbäume generiert

So entwickeln Sie ein WordPress-Plug-in, das automatisch einen Verzeichnisbaum generiert

Mit der kontinuierlichen Entwicklung von WordPress-Websites wird auch der Umfang der Website-Inhalte immer größer. Für die Leser ist es sehr wichtig, schnell durch die Inhalte der Website navigieren und sie durchsuchen zu können. Der Verzeichnisbaum ist eine sehr nützliche Funktion, die Lesern dabei helfen kann, verschiedene Teile der Website schnell zu finden und zu durchsuchen. In diesem Artikel erfahren Sie, wie Sie ein WordPress-Plug-in entwickeln, das automatisch Verzeichnisbäume generiert.

Bevor wir mit der Entwicklung von Plugins beginnen, müssen wir die Grundstruktur und Prinzipien von WordPress-Plugins verstehen. Ein WordPress-Plugin besteht aus einem Haupt-Plugin-Ordner und einer oder mehreren Feature-Dateien. Der Hauptordner enthält die Hauptdatei des Plugins (normalerweise eine PHP-Datei) und andere erforderliche Dateien (z. B. CSS- und JavaScript-Dateien). Die Funktionsdatei enthält den Code, der die spezifischen Funktionen des Plug-Ins implementiert. Als nächstes erstellen wir ein WordPress-Plugin, das Schritt für Schritt automatisch Verzeichnisbäume generiert.

Schritt 1: Grundstruktur des Plug-ins erstellen
Zuerst müssen wir einen Ordner als Hauptordner unseres Plug-ins erstellen. Geben Sie ihm einen aussagekräftigen Namen, z. B. „Inhaltsverzeichnis“. In diesem Ordner erstellen wir eine Haupt-Plugin-Datei mit dem Namen „table-of-contents.php“.

Öffnen Sie die Datei „table-of-contents.php“ und fügen Sie den folgenden Code zur Datei hinzu:

<?php
/**
 * Plugin Name: Table of Contents
 * Description: Automatically generates a table of contents for your WordPress posts and pages.
 * Version: 1.0.0
 * Author: Your Name
 * License: GPL2
 */

// 插件代码将在这里添加
?>
Nach dem Login kopieren

Im obigen Code definieren wir die grundlegenden Informationen des Plugins, wie Name, Beschreibung, Version, Autor, und Lizenz.

Schritt 2: Plugin-Einstellungsseite hinzufügen
Jetzt müssen wir eine Einstellungsseite für das Plugin hinzufügen, um auszuwählen, auf welchen Seiten oder Artikeln wir den Verzeichnisbaum anzeigen möchten. Fügen Sie in der Datei „table-of-contents.php“ den folgenden Code hinzu:

// 激活插件时添加设置菜单
function toc_add_settings_menu() {
  add_options_page( 'Table of Contents Settings', 'Table of Contents', 'manage_options', 'table-of-contents-settings', 'toc_render_settings_page' );
}
add_action( 'admin_menu', 'toc_add_settings_menu' );

// 渲染设置页面
function toc_render_settings_page() {
  ?>
  <div class="wrap">
    <h1 id="Table-of-Contents-Settings">Table of Contents Settings</h1>
    <form method="post" action="options.php">
      <?php settings_fields( 'toc_settings_group' ); ?>
      <?php do_settings_sections( 'toc_settings_page' ); ?>
      <?php submit_button(); ?>
    </form>
  </div>
  <?php
}
Nach dem Login kopieren

Im obigen Code erstellen wir eine Einstellungsseite mit der von WordPress bereitgestellten Funktion add_options_page() und fügen sie hinzu Der Link wird zum Menü „Einstellungen“ im WordPress-Backend hinzugefügt. Wir haben auch eine Funktion toc_render_settings_page() erstellt, die den Inhalt der Einstellungsseite rendert. add_options_page()创建了一个设置页面,并将其链接添加到WordPress后台的"设置"菜单中。我们还创建了一个用于渲染设置页面内容的函数toc_render_settings_page()

第三步:添加设置字段和保存功能
在上一步中,我们创建了一个设置页面,但页面上还没有任何设置字段。接下来,我们将添加一个多选框字段,用于选择要在哪些页面或文章中显示目录树。在"table-of-contents.php"文件中,添加以下代码:

// 注册设置字段
function toc_register_settings() {
  register_setting( 'toc_settings_group', 'toc_display_options' );
  add_settings_section( 'toc_general_section', 'General Settings', 'toc_general_section_callback', 'toc_settings_page' );
  add_settings_field( 'toc_display_options_field', 'Display Options', 'toc_display_options_field_callback', 'toc_settings_page', 'toc_general_section' );
}
add_action( 'admin_init', 'toc_register_settings' );

// 渲染字段
function toc_display_options_field_callback() {
  $options = get_option( 'toc_display_options' );
  $pages = get_pages();
  foreach ( $pages as $page ) {
    $checked = isset( $options[$page->ID] ) ? checked( $options[$page->ID], $page->post_title, false ) : '';
    echo '<input type="checkbox" name="toc_display_options[' . $page->ID . ']" value="' . esc_attr( $page->post_title ) . '" ' . $checked . '> ' . esc_html( $page->post_title ) . '<br>';
  }
}

// 保存设置
function toc_save_settings() {
  if ( isset( $_POST['toc_display_options'] ) ) {
    $options = array();
    foreach ( $_POST['toc_display_options'] as $page_id => $title ) {
      $options[$page_id] = $title;
    }
    update_option( 'toc_display_options', $options );
  }
}
add_action( 'admin_post_save_toc_settings', 'toc_save_settings' );
Nach dem Login kopieren

上述代码中,我们使用了register_setting()函数来注册一个设置字段,使用add_settings_section()函数创建了一个设置字段的组,使用add_settings_field()函数创建了一个多选框字段。

我们还定义了一个渲染设置字段的回调函数toc_display_options_field_callback(),该函数将所有页面作为多选框字段显示。我们还定义了一个保存设置的函数toc_save_settings(),在该函数中,我们使用update_option()函数将用户选择的页面保存到WordPress数据库中。

第四步:生成目录树
现在,我们已经设置了插件的基本结构和设置页面,接下来我们将添加生成目录树的功能。在"table-of-contents.php"文件中,添加以下代码:

// 生成目录树
function toc_generate_toc() {
  $options = get_option( 'toc_display_options' );
  if ( $options ) {
    global $post;
    if ( isset( $options[$post->ID] ) ) {
      $content = apply_filters( 'the_content', $post->post_content );
      $pattern = "/<h([1-6])>(.*?)</h[1-6]>/";
      preg_match_all( $pattern, $content, $headings, PREG_SET_ORDER );
      $tree = array();
      foreach ( $headings as $heading ) {
        $level = intval( $heading[1] );
        $title = strip_tags( $heading[2] );
        $tree[] = array(
          'level' => $level,
          'title' => $title
        );
      }
      $toc_html = '<ul class="toc">';
      $current_level = 0;
      foreach ( $tree as $branch ) {
        if ( $branch['level'] == $current_level ) {
          $toc_html .= '</li><li>';
        } elseif ( $branch['level'] > $current_level ) {
          $toc_html .= '<ul>';
        } elseif ( $branch['level'] < $current_level ) {
          $toc_html .= '</li>';
          for ( $i = $branch['level']; $i < $current_level; $i++ ) {
            $toc_html .= '</ul></li>';
          }
          $toc_html .= '<li>';
        }
        $toc_html .= '<a href="#' . sanitize_title( $branch['title'] ) . '">' . esc_html( $branch['title'] ) . '</a>';
        $current_level = $branch['level'];
      }
      $toc_html .= '</li>';
      for ( $i = $current_level; $i > 0; $i-- ) {
        $toc_html .= '</ul></li>';
      }
      $toc_html .= '</ul>';
      return $toc_html;
    }
  }
}
add_shortcode( 'table_of_contents', 'toc_generate_toc' );
Nach dem Login kopieren

在上述代码中,我们首先获取用户选择的页面,并根据这些页面的内容生成目录树。我们使用了正则表达式来匹配页面中的标题标签,并将匹配到的标题存储在一个数组中。之后,我们使用循环将这些标题按层级和顺序组织成目录树。

我们还使用了一个短代码[table_of_contents]来调用toc_generate_toc()函数,并将生成的目录树作为内容返回。

第五步:添加样式和脚本
为了让目录树具有更好的外观和交互效果,我们需要添加一些样式和脚本。在"table-of-contents.php"文件中,添加以下代码:

// 添加样式和脚本
function toc_enqueue_scripts() {
  wp_enqueue_style( 'toc-style', plugins_url( 'css/style.css', __FILE__ ) );
  wp_enqueue_script( 'toc-script', plugins_url( 'js/script.js', __FILE__ ), array( 'jquery' ), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'toc_enqueue_scripts' );
Nach dem Login kopieren

在上述代码中,我们使用了WordPress提供的函数wp_enqueue_style()wp_enqueue_script()来加载插件所需的样式表和脚本文件。注意,我们需要将样式表和脚本文件放在插件文件夹的"css"和"js"子文件夹中,并为它们添加相应的文件名。

第六步:将目录树添加到页面或文章中
最后一步是将生成的目录树添加到要显示目录树的页面或文章中。在编辑页面或文章时,你可以使用短代码[table_of_contents]将目录树插入到页面的任意位置。请在"table-of-contents.php"文件中添加以下代码:

<!-- 在编辑器中显示目录树短代码按钮 -->
<script>
  function add_toc_shortcode_button() {
    if ( typeof wp !== 'undefined' && wp.hasOwnProperty( 'shortcode' ) ) {
      wp.mce = wp.mce || {};
      wp.mce.tinymce = wp.mce.tinymce || {};
      wp.mce.views = wp.mce.views || {};

      wp.mce.tinymce.Template = Backbone.Marionette.ItemView.extend({});

      $( document ).on( 'click', 'a.add-toc-shortcode', function(e) {
        e.preventDefault();
        wp.mce.views.getParentWindow().send_to_editor('[table_of_contents]');
      });
    }
  }
  $(document).ready(function() {
    add_toc_shortcode_button();
  });
</script>
Nach dem Login kopieren

上述代码中,我们使用JavaScript代码为编辑器添加一个按钮,该按钮可以快速插入[table_of_contents]

Schritt drei: Einstellungsfelder hinzufügen und Funktion speichern🎜Im ​​vorherigen Schritt haben wir eine Einstellungsseite erstellt, aber es gab noch keine Einstellungsfelder auf der Seite. Als Nächstes fügen wir ein Kontrollkästchenfeld hinzu, das auswählt, auf welchen Seiten oder Beiträgen der Baum angezeigt werden soll. Fügen Sie in der Datei „table-of-contents.php“ den folgenden Code hinzu: 🎜rrreee🎜Im obigen Code verwenden wir die Funktion register_setting(), um ein Einstellungsfeld zu registrieren, verwenden Sie Die Funktion add_settings_section( ) erstellt eine Gruppe von Einstellungsfeldern und verwendet die Funktion add_settings_field(), um ein Mehrfachauswahlfeld zu erstellen. 🎜🎜Wir definieren außerdem eine Rückruffunktion toc_display_options_field_callback() zum Rendern von Einstellungsfeldern, die alle Seiten als Felder mit Mehrfachauswahlfeldern anzeigt. Wir definieren auch eine Funktion zum Speichern von Einstellungen toc_save_settings(), in der wir die Funktion update_option() verwenden, um die vom Benutzer ausgewählte Seite in der WordPress-Datenbank zu speichern. 🎜🎜Schritt 4: Verzeichnisbaum erstellen🎜Da wir nun die Grundstruktur und die Einstellungsseite des Plug-Ins eingerichtet haben, fügen wir die Funktion zum Generieren eines Verzeichnisbaums hinzu. Fügen Sie in der Datei „table-of-contents.php“ den folgenden Code hinzu: 🎜rrreee🎜Im obigen Code rufen wir zunächst die vom Benutzer ausgewählten Seiten ab und generieren einen Verzeichnisbaum basierend auf dem Inhalt dieser Seiten. Wir verwenden einen regulären Ausdruck, um Titel-Tags auf der Seite abzugleichen und die übereinstimmenden Titel in einem Array zu speichern. Anschließend verwenden wir Schleifen, um diese Titel hierarchisch und sequentiell in einem Verzeichnisbaum zu organisieren. 🎜🎜Wir verwenden auch einen Shortcode [table_of_contents], um die Funktion toc_generate_toc() aufzurufen und den generierten Verzeichnisbaum als Inhalt zurückzugeben. 🎜🎜Schritt 5: Stile und Skripte hinzufügen🎜Um dem Verzeichnisbaum ein besseres Aussehen und einen interaktiven Effekt zu verleihen, müssen wir einige Stile und Skripte hinzufügen. Fügen Sie in der Datei „table-of-contents.php“ den folgenden Code hinzu: 🎜rrreee🎜 Im obigen Code haben wir die bereitgestellten Funktionen wp_enqueue_style() und wp_enqueue_script(), um die für das Plug-in erforderlichen Stylesheets und Skriptdateien zu laden. Beachten Sie, dass wir die Stylesheet- und Skriptdateien in den Unterordnern „css“ und „js“ des Plugin-Ordners ablegen und ihnen entsprechende Dateinamen hinzufügen müssen. 🎜🎜Schritt 6: Fügen Sie den Verzeichnisbaum zur Seite oder zum Beitrag hinzu🎜Der letzte Schritt besteht darin, den generierten Verzeichnisbaum zur Seite oder zum Beitrag hinzuzufügen, auf der der Verzeichnisbaum angezeigt werden soll. Wenn Sie eine Seite oder einen Beitrag bearbeiten, können Sie den Shortcode <code>[table_of_contents] verwenden, um an einer beliebigen Stelle auf der Seite einen Inhaltsverzeichnisbaum einzufügen. Bitte fügen Sie den folgenden Code in die Datei „table-of-contents.php“ ein: 🎜rrreee🎜Im obigen Code verwenden wir JavaScript-Code, um dem Editor eine Schaltfläche hinzuzufügen, mit der schnell [table_of_contents] eingefügt werden kann. Code> Shortcode in den Editor eingeben. 🎜<p>Durch die oben genannten sechs Schritte haben wir ein WordPress-Plug-in entwickelt, das automatisch Verzeichnisbäume generiert. Sie können das Plug-in entsprechend Ihren eigenen Bedürfnissen weiter modifizieren und optimieren. Ich hoffe, dieser Artikel ist hilfreich für Sie und wünsche Ihnen eine reibungslose Entwicklung! </p>

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein WordPress-Plugin, das automatisch Verzeichnisbäume generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist WordPress für Anfänger leicht? Ist WordPress für Anfänger leicht? Apr 03, 2025 am 12:02 AM

WordPress ist für Anfänger leicht zu beginnen. 1. Nach dem Anmeldung im Hintergrund ist die Benutzeroberfläche intuitiv und das einfache Dashboard bietet alle erforderlichen Funktionslinks. 2. Grundlegende Vorgänge umfassen das Erstellen und Bearbeiten von Inhalten. Der Wysiwyg -Editor vereinfacht die Erstellung von Inhalten. 3. Anfänger können die Website-Funktionen durch Plug-Ins und Themen erweitern, und die Lernkurve existiert, kann aber durch das Üben gemeistert werden.

Wofür ist die WordPress gut? Wofür ist die WordPress gut? Apr 07, 2025 am 12:06 AM

WordPressIsGoodforenualywebProjectDuetoitsverseSatilityasacms.itexcelsin: 1) Benutzerfreundlichkeit, erlaubt Easywebsitesetup; 2) Flexibilität und Kustomisierung mit

Kann ich WordPress in 3 Tagen lernen? Kann ich WordPress in 3 Tagen lernen? Apr 09, 2025 am 12:16 AM

Kann WordPress innerhalb von drei Tagen lernen. 1. Master Basic-Kenntnisse wie Themen, Plug-Ins usw. 2. Verstehen Sie die Kernfunktionen, einschließlich Installations- und Arbeitsprinzipien. 3. Lernen Sie die grundlegende und erweiterte Verwendung anhand von Beispielen. 4. Verstehen Sie Debugging -Techniken und Vorschläge zur Leistungsoptimierung.

Soll ich Wix oder WordPress verwenden? Soll ich Wix oder WordPress verwenden? Apr 06, 2025 am 12:11 AM

Wix ist für Benutzer geeignet, die keine Programmiererfahrung haben, und WordPress ist für Benutzer geeignet, die mehr Kontroll- und Erweiterungsfunktionen wünschen. 1) Wix bietet Drag-and-Drop-Editoren und reichhaltige Vorlagen und erleichtert es, eine Website schnell zu erstellen. 2) Als Open-Source-CMS verfügt WordPress über eine riesige Community- und Plug-in-Ökosystem, die eine eingehende Anpassung und Erweiterung unterstützt.

Wie viel kostet WordPress? Wie viel kostet WordPress? Apr 05, 2025 am 12:13 AM

WordPress selbst ist kostenlos, kostet jedoch zusätzlich: 1. WordPress.com bietet ein Paket von kostenlos bis bezahlt, wobei die Preise zwischen ein paar Dollar pro Monat bis zu Dutzenden von Dollar reichen. 2. 3. Die meisten Plug-Ins und Themen sind kostenlos, und der bezahlte Preis liegt zwischen Dutzenden und Hunderten von Dollar. Durch die Auswahl des richtigen Hosting-Dienstes, die Verwendung von Plug-Ins und Themen und regelmäßige Aufrechterhaltung und Optimierung können die Kosten von WordPress effektiv gesteuert und optimiert werden.

Warum sollte jemand WordPress verwenden? Warum sollte jemand WordPress verwenden? Apr 02, 2025 pm 02:57 PM

Die Leute verwenden WordPress wegen ihrer Kraft und Flexibilität. 1) WordPress ist ein Open -Source -CMS mit einer starken Benutzerfreundlichkeit und Skalierbarkeit, die für verschiedene Website -Anforderungen geeignet ist. 2) Es hat reichhaltige Themen und Plugins, ein riesiges Ökosystem und eine starke Unterstützung der Gemeinschaft. 3) Das Arbeitsprinzip von WordPress basiert auf Themen, Plug-Ins und Kernfunktionen und verwendet PHP und MySQL, um Daten zu verarbeiten und die Leistungsoptimierung zu unterstützen.

Ist WordPress ein CMS? Ist WordPress ein CMS? Apr 08, 2025 am 12:02 AM

WordPress ist ein Content Management System (CMS). Es bietet Content Management, Benutzerverwaltung, Themen und Plug-in-Funktionen, um die Erstellung und Verwaltung von Website-Inhalten zu unterstützen. Das Arbeitsprinzip umfasst Datenbankverwaltung, Vorlagensysteme und Plug-in-Architektur, die für eine Vielzahl von Anforderungen von Blogs bis hin zu Unternehmenswebsites geeignet sind.

Ist WordPress noch kostenlos? Ist WordPress noch kostenlos? Apr 04, 2025 am 12:06 AM

Die Kernversion von WordPress ist kostenlos, aber andere Gebühren können während der Verwendung anfallen. 1. Domainnamen und Hosting -Dienste erfordern eine Zahlung. 2. können fortgeschrittene Themen und Plug-Ins aufgeladen werden. 3.. Professionelle Dienstleistungen und fortschrittliche Funktionen können berechnet werden.

See all articles