WordPress-Plugin entwickeln (HowTo)

Aus wiki.sehanka.de
Zur Navigation springen Zur Suche springen

Arbeitsschritte

Schritt 1: Plugin anlegen

  • unter "wp-content/plugins/" einen Ordner mit dem Namen des Plugins anlegen, z. B. "my-plugin"
  • im Ordner eine php-Datei anlegen, z. B. "my-plugin.php"
<?php

/**
 *Plugin Name: My Plugin
 *Description: Management/Display Plugin for Projects.
 **/
  • danach ist das Plugin im WordPress Backend unter Plugins sichtbar

Schritt 4: Plugin-Menü anlegen oder erweitern

4a) Struktur für eigenes Plugin-Menü anlegen

Plugin-Unterseiten anlegen

  • in "wp-content/plugins/my-plugin" einen Ordner "views" anlegen
  • im Ordner views drei PHP-Dateien anlegen, z. B.:
    • all-custom-post-types.php
    • usage.php
    • settings.php
<?php
defined( 'ABSPATH' ) or die();

?>

<h2>Alle Custom Posts</h2>

<div>
    <p>Das scheint zu funktionieren!</p>
</div>

Plugin Menü im Backend anzeigen

  • in der Datei "wp-content/plugins/my-plugin.php" Menüstruktur anlegen
function my_plugin_test_admin_menu_option() {
    add_menu_page(
        'My Plugin',
        'My Plugin',
        'manage_options',
        'my-plugin-test-admin-menu',
        function() {},
        'dashicons-location-alt',
        3 );

    add_submenu_page(
        'my-plugin-test-admin-menu',
        'Alle Datensätze',
        'Alle Datensätze',
        'manage_options',
        'my-plugin-test-admin-menu',
        function() {
            include 'views/all-custom-post-types.php';
        });

    add_submenu_page(
        'my-plugin-test-admin-menu',
        'Nutzungshinweise',
        'Nutzungshinweise',
        'manage_options',
        'project_usage_page',
        function() {
            include 'views/usage.php';
        });

    add_submenu_page(
        'my-plugin-test-admin-menu',
        'Einstellungen',
        'Einstellungen',
        'manage_options',
        'project_settings_page',
        function() {
            include 'views/settings.php';
        });

}

add_action( 'admin_menu', 'my_plugin_test_admin_menu_option' );

4b) Bestehendes Menü erweitern

in bestehenden WordPress Modulen integrieren

  • "show_in_menu"-Argument in $args-Array (Voraussetzung: "show_ui" muss Wert "true" haben)
    • ‘false’ – do not display in the admin menu
    • ‘true’ – display as a top level menu
    • ‘some string’ für eine existierende Top Level Page, z.B.
      • ‘tools.php’ für Werkzeuge-Menü
      • ‘edit.php?’ für Beiträge-Menü
      • ‘edit.php?post_type=page’ für Seiten-Menü

in bestehenden Custom Post Type integrieren

/**
 * Menü um zwei Unterpunkte erweitern
 */

function product_admin_menu_option() {
    add_submenu_page(
        'edit.php?post_type=product',
        'Nutzungshinweise',
        'Nutzungshinweise',
        'manage_options',
        'product-usage-page',
        'product_usage_page_callback'
    );

    add_submenu_page(
        'edit.php?post_type=product',
        'Optionen',
        'Optionen',
        'manage_options',
        'product-options-page',
        'product_options_page_callback'
    );

}

function product_usage_page_callback() {
    include 'views/usage.php';
}

function product_options_page_callback() {
    include 'views/settings.php';
}

https://wordpress.org/support/topic/custom-post-types-in-admin-menu/

Schritt 4: Templates entwickeln

WordPress Templates entwickeln (HowTo)