This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
programmieren:wordpress:admin_pages_hinzufuegen [2019/11/28 20:44] – created jgehrke | programmieren:wordpress:admin_pages_hinzufuegen [2022/12/17 12:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Wordpress Admin Pages Hinzufügen ====== | + | ====== Wordpress Admin Settings |
- | Mit diesem Code Beispiel werden zwei Options / Settings Pages für Wordpress hinzugefügt. Dieser Code fügt nur die Seiten ins Menü ein. Es müssen noch Render Funktionen geschrieben werden, die eine Ausgabe erzeugen. | + | Mit diesem Code Beispiel werden zwei Options / Settings Pages für Wordpress hinzugefügt. Dieser Code fügt nur die Seiten ins Menü ein. Es müssen noch Render Funktionen geschrieben werden, die eine Ausgabe erzeugen. |
+ | |||
+ | ===== 1. Settings-Page Registrieren (ohne Klasse) ===== | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | namespace PluginNamespace\UserAccessManager; | + | namespace PluginNamespace\Adminpages; |
+ | |||
+ | add_action( ' | ||
function add_admin_page() { | function add_admin_page() { | ||
Line 28: | Line 32: | ||
} | } | ||
+ | </ | ||
+ | |||
+ | Damit Unterseiten bei bestehenden Setting-Seiten eingebaut werden, muss der parent-slug angepasst werden. | ||
+ | |||
+ | <code php> | ||
+ | $parent_slug | ||
+ | |||
+ | // ... | ||
+ | |||
+ | add_submenu_page( $parent_slug, | ||
+ | </ | ||
+ | |||
+ | Mehr dazu in der [[https:// | ||
+ | |||
+ | |||
+ | ===== 2. Settings-Page als PHP-Klasse ===== | ||
+ | |||
+ | Es kann nützlich sein Settings als PHP Class oder Objekt zu registrieren, | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | |||
+ | namespace mein_namespace; | ||
+ | |||
+ | /** | ||
+ | * | ||
+ | */ | ||
+ | class Overview | ||
+ | { | ||
+ | |||
+ | private $plugin_url = ''; | ||
+ | |||
+ | function __construct( $plugin_url ) | ||
+ | { | ||
+ | $this-> | ||
+ | add_action( ' | ||
+ | add_action( ' | ||
+ | } | ||
+ | |||
+ | public function add_page() | ||
+ | { | ||
+ | $page_title | ||
+ | $menu_title | ||
+ | $capability | ||
+ | $menu_slug | ||
+ | $page_function = [ $this, ' | ||
+ | $icon | ||
+ | $position | ||
+ | add_menu_page( $page_title, | ||
+ | } | ||
+ | |||
+ | public function register_scripts_styles(){ | ||
+ | // Style Registrieren (noch nicht einbetten) | ||
+ | /* | ||
+ | $handle | ||
+ | $src | ||
+ | $deps | ||
+ | $version = ' | ||
+ | wp_register_style( $handle, $src, $deps, $version ); | ||
+ | */ | ||
+ | |||
+ | // Script Registrieren (noch nicht einbetten) | ||
+ | /* | ||
+ | $handle | ||
+ | $src | ||
+ | $deps | ||
+ | $version | ||
+ | $in_footer = false; | ||
+ | wp_register_script( $handle, $src, $deps, $version, | ||
+ | */ | ||
+ | } | ||
+ | |||
+ | public function render_page() | ||
+ | { | ||
+ | // | ||
+ | // | ||
+ | |||
+ | echo "< | ||
+ | include " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 3. HTML Ausgabe und Speichern (rudimentär) ===== | ||
+ | |||
+ | Page Renderer Function, so etwas wie: | ||
+ | <code php> | ||
+ | function admin_setting_page_theme_links(){ | ||
+ | $menu_slug | ||
+ | $echo | ||
+ | $form_action = menu_page_url( $menu_slug, $echo ); | ||
+ | |||
+ | $v = [ | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | require_once ' | ||
+ | } | ||
+ | |||
+ | /* Rudimentäre Saving & Lade Function */ | ||
+ | function save_and_load_option( $key, $default = null ){ | ||
+ | $value = get_option( $key, $default ); | ||
+ | |||
+ | if( isset( $_POST[$key] ) ){ | ||
+ | $new_value = $_POST[$key]; | ||
+ | $autoload | ||
+ | update_option( $key, $new_value, $autoload ); | ||
+ | $value | ||
+ | } | ||
+ | |||
+ | return $new_value; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | HTML-Sub-File für das Template der Settings-Page, | ||
+ | <code php> | ||
+ | <div class=" | ||
+ | < | ||
+ | <form method=" | ||
+ | |||
+ | <table class=" | ||
+ | < | ||
+ | < | ||
+ | <th scope=" | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <p class=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
- | add_action( ' | + | <?php submit_button(); ?> |
+ | </ | ||
+ | </ | ||
</ | </ |