diff --git a/wp-multi.php b/wp-multi.php index 62631d0..ae67362 100644 --- a/wp-multi.php +++ b/wp-multi.php @@ -3,11 +3,12 @@ * Plugin Name: WP Multi * Plugin URI: https://git.viper.ipv64.net/M_Viper/wp-multi * Description: Erweiterter Anti-Spam-Schutz mit Honeypot, Keyword-Filter, Link-Limit und mehr. Jetzt mit Statistik im Dashboard und HappyForms-Integration. - * Version: 3.0 + * Version: 3.2 * Author: M_Viper * Author URI: https://m-viper.de * Requires at least: 6.7.2 * Tested up to: 6.7.2 + * PHP Version: 7.2 * License: GPL2 * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: wp-multi @@ -311,7 +312,9 @@ function check_disposable_email($commentdata) { // Die Funktion wird beim Absenden eines Kommentars ausgeführt add_filter('preprocess_comment', 'check_disposable_email'); - + + + /* * Text Copy Schutz und Schutz vor Entwicklertools */ @@ -3476,7 +3479,6 @@ function wp_multi_display_dashboard_widget() { * Gast Autoren */ - // Gast-Autor Eingabefeld in der Sidebar im Admin-Bereich hinzufügen function wp_multi_add_guest_author_field() { add_meta_box( @@ -3492,7 +3494,6 @@ add_action('add_meta_boxes', 'wp_multi_add_guest_author_field'); // Callback-Funktion, die das Eingabefeld anzeigt function wp_multi_guest_author_field($post) { - // Die Metadaten des Beitrags laden (ob ein Gast-Autor gesetzt ist) $guest_author = get_post_meta($post->ID, '_guest_author', true); ?> @@ -3502,13 +3503,8 @@ function wp_multi_guest_author_field($post) { // Speichern der Gast-Autor Daten function wp_multi_save_guest_author_meta($post_id) { - // Sicherheit: Verhindere, dass die Metadaten beim Autosave überschrieben werden if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; - - // Überprüfen, ob der Benutzer Berechtigungen hat if (!current_user_can('edit_post', $post_id)) return; - - // Überprüfen, ob der Gast-Autor Name gesetzt wurde if (isset($_POST['guest_author'])) { $guest_author = sanitize_text_field($_POST['guest_author']); update_post_meta($post_id, '_guest_author', $guest_author); @@ -3523,10 +3519,8 @@ function wp_multi_display_guest_author($author_name) { if ((is_single() || is_archive() || is_home()) && !is_admin()) { $post = get_post(); if ($post) { - // Wenn der Beitrag einen Gast-Autor hat, diesen verwenden $guest_author = get_post_meta($post->ID, '_guest_author', true); if (!empty($guest_author)) { - // Ersetze den Standard-Autor mit dem Gast-Autor $author_name = $guest_author; } } @@ -3544,15 +3538,10 @@ function wp_multi_add_guest_author_column($columns) { } add_filter('manage_posts_columns', 'wp_multi_add_guest_author_column'); -// Inhalt der Gast-Autor-Spalte function wp_multi_display_guest_author_column($column_name, $post_id) { if ($column_name == 'guest_author') { $guest_author = get_post_meta($post_id, '_guest_author', true); - if (!empty($guest_author)) { - echo esc_html($guest_author); - } else { - echo __('Kein Gast-Autor', 'wp-multi'); - } + echo !empty($guest_author) ? esc_html($guest_author) : __('Kein Gast-Autor', 'wp-multi'); } } add_action('manage_posts_custom_column', 'wp_multi_display_guest_author_column', 10, 2); @@ -3570,43 +3559,67 @@ function wp_multi_add_guest_author_page() { } add_action('admin_menu', 'wp_multi_add_guest_author_page'); - // Callback-Funktion für die Gast-Autor-Übersicht function wp_multi_guest_author_overview_page() { + // Sortierparameter aus URL lesen + $orderby = isset($_GET['orderby']) ? sanitize_key($_GET['orderby']) : 'guest_author'; + $order = isset($_GET['order']) && in_array(strtoupper($_GET['order']), ['ASC', 'DESC']) ? strtoupper($_GET['order']) : 'ASC'; + + // Gültige Sortierfelder + $valid_orderby = ['guest_author' => 'pm.meta_value', 'posts' => 'post_count']; + $sql_orderby = isset($valid_orderby[$orderby]) ? $valid_orderby[$orderby] : 'pm.meta_value'; + $sql_order = $order; + + // Basis-URL für Sortier-Links + $base_url = add_query_arg(['page' => 'guest_author_overview'], admin_url('users.php')); + ?>
- | + | + + + + + + + | ++ + + + + + + |
---|---|---|---|
guest_author); ?> | -+ | post_count); ?> |