


So entwickeln Sie ein WordPress-Plugin, das automatisch ein Inhaltsverzeichnis generiert
So entwickeln Sie ein WordPress-Plugin, das automatisch ein Inhaltsverzeichnis generiert
Da Blogbeiträge immer inhaltsreicher werden, ist die Verbesserung des Leseerlebnisses zu einem wichtigen Gesichtspunkt geworden. Die automatische Erstellung eines Inhaltsverzeichnisses ist eine gängige Methode zur Verbesserung des Leseerlebnisses. Entwickeln Sie ein Plug-in, das automatisch ein Inhaltsverzeichnis auf der WordPress-Plattform generiert, um Lesern das schnelle Durchsuchen und Navigieren in Artikelinhalten zu erleichtern. In diesem Artikel wird erläutert, wie Sie ein WordPress-Plug-in entwickeln, das automatisch ein Inhaltsverzeichnis generiert, und relevante Codebeispiele als Referenz bereitstellen.
Zuerst müssen wir ein neues Widget (Widget) im WordPress-Plugin registrieren, um das Inhaltsverzeichnis im Artikel anzuzeigen. Das Folgende ist ein einfaches Registrierungsbeispiel eines Verzeichnis-Widgets:
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 ) { // 更新小部件设置 } }
Als nächstes müssen wir Code in die widget()
-Methode des Widgets schreiben, um die Logik der Verzeichnisgenerierung zu implementieren. Zuerst müssen wir den Inhalt des Artikels abrufen und einen regulären Ausdruck verwenden, um alle Titelelemente abzugleichen. Das Folgende ist ein Beispielcode: 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()
, um die Titelelemente im Artikelinhalt abzugleichen, und speichern die übereinstimmenden Ergebnisse in $matches im Array. Anschließend durchlaufen wir das Array <code>$matches
und erstellen ein Array von Inhaltsverzeichniselementen $toc_items
, das den Text, die Ebene und den Anker des Titels enthält. Schließlich müssen wir eine HTML-Ausgabe in der Methode widget()
des Widgets „Inhaltsverzeichnis“ generieren und im Artikel anzeigen. Hier ist der Code für ein Beispiel: 🎜rrreee🎜Im obigen Code verwenden wir eine foreach
-Schleife, um das Katalogelement-Array $toc_items
zu durchlaufen und die HTML-Ausgabe von zu generieren Der Katalog. Jedes Inhaltsverzeichniselement ist in das <li>
-Tag eines Listenelements eingeschlossen und enthält einen Ankerlink, über den Leser klicken können, um innerhalb des Artikels zum entsprechenden Titel zu navigieren. 🎜🎜Schließlich können wir auch einige Einstellungsoptionen in der form()
-Methode des Widgets hinzufügen, damit Benutzer den im Verzeichnis angezeigten Titel anpassen können. Hier ist ein einfacher Beispielcode: 🎜rrreee🎜 Im obigen Code verwenden wir ein Formularelement input
, um dem Benutzer die Eingabe eines benutzerdefinierten Verzeichnistitels zu ermöglichen. Dieser Wert wird in den Einstellungen des Plugins gespeichert und in der Methode widget()
des Widgets verwendet. 🎜🎜Durch das obige Codebeispiel können wir ein Plug-in entwickeln, das automatisch ein Inhaltsverzeichnis basierend auf der WordPress-Plattform generiert, um das Leseerlebnis von Blog-Artikeln zu verbessern. Leser können Artikelinhalte schnell durchsuchen und navigieren, indem sie auf Links im Inhaltsverzeichnis klicken. Durch die Entwicklung Ihres eigenen WordPress-Plugins können Sie es entsprechend den tatsächlichen Anforderungen erweitern und anpassen und so den Lesern ein besseres Benutzererlebnis bieten. 🎜Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein WordPress-Plugin, das automatisch ein Inhaltsverzeichnis generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Möchten Sie Ihr Blog von WordPress.com auf wordpress.org verschieben? Viele Anfänger beginnen mit WordPress.com, erkennen aber schnell ihre Einschränkungen und möchten auf die selbst gehostete WordPress.org-Plattform wechseln. In dieser Schritt-für-Schritt-Anleitung zeigen wir Ihnen, wie Sie Ihr Blog von WordPress.com auf WordPress.org richtig verschieben. Warum von WordPress.com auf WordPress.org migrieren? Mit WordPress.com kann jeder ein Konto erstellen

Suchen Sie nach Möglichkeiten, Ihre WordPress -Website und Social -Media -Konten zu automatisieren? Mit der Automatisierung können Sie Ihre WordPress -Blog -Beiträge oder Updates automatisch auf Facebook, Twitter, LinkedIn, Instagram und mehr freigeben. In diesem Artikel zeigen wir Ihnen, wie Sie WordPress und Social Media mit IFTTT, Zapier und Uncanny Automator einfach automatisieren können. Warum WordPress und Social Media automatisieren? Automatisieren Sie Ihren WordPre

Noch vor ein paar Tagen berichtete einer unserer Benutzer über ein ungewöhnliches Problem. Das Problem ist, dass er die Grenze der benutzerdefinierten Menüelemente erreicht. Alle Inhalte, die er nach Erreichen des Menüpunktlimits speichert, werden überhaupt nicht gespeichert. Wir haben noch nie von diesem Problem gehört und haben uns entschlossen, es mit unserer lokalen Installation auszuprobieren. Es wurden mehr als 200 Menüelemente erstellt und gespeichert. Der Effekt ist sehr gut. Bewegen Sie 100 Elemente in die Dropdown-Liste und speichern Sie sie sehr gut. Dann wussten wir, dass es mit dem Server zu tun hatte. Nach weiteren Forschung scheint es, dass viele andere das gleiche Problem gestoßen haben. Nachdem wir tiefer gegraben hatten, fanden wir ein TRAC -Ticket (#14134), das dieses Problem hervorhob. Lesen Sie sehr

Müssen Sie in WordPress benutzerdefinierte Metafields zu einer benutzerdefinierten Taxonomie hinzufügen? Mit benutzerdefinierten Taxonomie können Sie Inhalte neben Kategorien und Tags organisieren. Manchmal ist es nützlich, andere Felder hinzuzufügen, um sie zu beschreiben. In diesem Artikel zeigen wir Ihnen, wie Sie der Taxonomie, die sie erstellen, andere Metafields hinzufügen. Wann sollten benutzerdefinierte Metafields zur benutzerdefinierten Taxonomie hinzugefügt werden? Wenn Sie neue Inhalte auf Ihrer WordPress -Site erstellen, können Sie ihn mit zwei Standard -Taxonomie (Kategorie und Tag) organisieren. Einige Websites profitieren von der Nutzung der benutzerdefinierten Taxonomie. Diese ermöglichen es Ihnen, den Inhalt auf andere Weise zu sortieren. Zum Beispiel,

Windows Live Writer ist ein vielseitiges Tool, mit dem Sie Beiträge direkt von Ihrem Desktop auf Ihr WordPress -Blog veröffentlichen können. Dies bedeutet, dass Sie sich nicht beim WordPress -Administratorbereich anmelden müssen, um Ihr Blog überhaupt zu aktualisieren. In diesem Tutorial zeige ich Ihnen, wie Sie das Desktop -Publishing für Ihr WordPress -Blog mit Windows Live Writer aktivieren. So richten Sie Windows Live Writer auf WordPress ein Schritt 1: Verwenden Sie Windows Live Writer in Wordpr.

Kürzlich berichtete einer unserer Benutzer über ein sehr seltsames Installationsproblem. Beim Schreiben eines Beitrags können sie nichts sehen, was sie schreiben. Weil der Text im Post -Editor weiß ist. Darüber hinaus fehlen alle visuellen Editor -Schaltflächen, und die Möglichkeit, von visuell auf HTML zu wechseln, funktioniert auch nicht. In diesem Artikel zeigen wir Ihnen, wie Sie den weißen Text und die fehlenden Schaltfläche im WordPress Visual Editor beheben. Seien Sie ein Anfängeranweis: Wenn Sie nach versteckten Tasten suchen, die möglicherweise in Screenshots anderer Websites zu sehen sind, suchen Sie möglicherweise nach einem Spülbecken. Sie müssen auf das Symbol für das Spülen in Küchenspüle klicken, um andere Optionen wie Unterstreichung, Kopieren von Word usw. anzuzeigen.

Möchten Sie Avatare in Benutzer -E -Mails in WordPress anzeigen? Gravatar ist ein Netzwerkdienst, der die E -Mail -Adresse eines Benutzers mit einem Online -Avatar verbindet. WordPress zeigt automatisch das Profilbilder der Besucher im Kommentarbereich an. Möglicherweise möchten Sie sie jedoch auch zu anderen Bereichen der Website hinzufügen. In diesem Artikel zeigen wir Ihnen, wie Sie Avatare in Benutzer -E -Mails in WordPress anzeigen. Was ist Gravatar und warum sollte ich es anzeigen? Gravatar steht für global anerkannte Avatare, mit denen Menschen Bilder mit ihren E -Mail -Adressen verknüpfen können. Wenn die Website unterstützt

Möchten Sie den Standard -Upload -Speicherort in WordPress ändern? Durch das Verschieben von Mediendateien in andere Ordner können Sie die Geschwindigkeit und Leistung der Website verbessern und Ihnen helfen, Backups schneller zu erstellen. Es gibt Ihnen auch die Freiheit, Ihre Dateien so zu organisieren, wie es am besten zu Ihnen passt. In diesem Artikel zeigen wir Ihnen, wie Sie den Standard -Upload -Standort für Medien in WordPress ändern. Warum den Standard -Hochladen von Standardmedien ändern? Standardmäßig speichert WordPress alle Bilder und anderen Mediendateien im/wp-content/uploads/ordner. In diesem Ordner finden Sie Kinder in verschiedenen Jahren und Monaten


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung