Lesefortschritt:

    Backend-Special – Trick #4: Beitragsstatus in der Word­Press-Admin-Leiste anzeigen und anpassen

    19. Juli 2026 | Word­Press

    Trick # 592 | Dieser Beitrag beinhaltet 981 Wörter. – Geschätzte Lesezeit: ca. 5 Minuten.

    Bei der Arbeit mit Word­Press ist der schwarze Admin-Balken ganz oben in der Ansicht allgegenwärtig. Er hält auch einige hilfreiche Funktionen bereit – aber etwas vermissen wir: Die Möglichkeit, einen Beitrag vom Status «Entwurf» auf den Status «Veröffentlicht» zu wechseln. Also haben wir das mal programmiert. Heute zeigen wir Ihnen den Code, den Sie dazu benötigen.

    Die Word­Press-Admin-Leiste ist ein praktisches Tool, das viele Funktionen schnell erreichbar macht. Indem Sie den Beitragsstatus dort hinzufügen, sparen Sie sich den Umweg über das Backend und können den Status eines Beitrags auf einen Blick sehen  und sogar direkt ändern – egal ob Entwurf, veröffentlicht oder geplant. Da lässt sich viel Zeit und Klicks sparen.

    Hier ist der Code, den Sie in die functions.php Ihres Themes einfügen können. Die Datei liegt im Backend unter Design/Theme-Datei-Editor:

    // Beitragstatus in der Admin-Leiste anzeigen und ändern
    function custom_post_status_in_admin_bar($wp_admin_bar) {
    if (!is_admin() && is_single()) { // Nur im Frontend und bei Einzelbeiträgen
    global $post;// Hole den aktuellen Status des Beitrags
    $status = get_post_status($post->ID);
    $status_labels = array(
    'publish' => 'Veröffentlicht',
    'draft' => 'Entwurf',
    'future' => 'Geplant',
    'pending' => 'Ausstehende Überprüfung',
    );$status_styles = array(
    'publish' => 'background-color: #008000; color: #ffffff; padding: 3px 5px;',
    'draft' => 'background-color: #FF0000; color: #ffffff; padding: 3px 5px;',
    'future' => 'background-color: #FFA500; color: #000000; padding: 3px 5px;',
    'pending' => 'background-color: #293280; color: #ffffff; padding: 3px 5px;',
    );$current_status_label = isset($status_labels[$status]) ? $status_labels[$status] : ucfirst($status);
    $current_status_style = isset($status_styles[$status]) ? $status_styles[$status] : '';// Status in der Admin-Bar anzeigen
    $wp_admin_bar->add_node(array(
    'id'    => 'post_status',
    'title' => '<span style="' . $current_status_style . '">Status: ' . $current_status_label . '</span>',
    ));// Status-Änderungen als Untermenü hinzufügen
    if ($status !== 'publish' && $status !== 'future') {
    $link_style = isset($status_styles['publish']) ? 'color: ' . str_replace(['background-color: ', ';'], '', $status_styles['publish']) . ';' : '';$wp_admin_bar->add_node(array(
    'id'     => 'change_status_publish',
    'parent' => 'post_status',
    'title'  => '<span style="' . $link_style . '">Zu «Veröffentlicht/Geplant» ändern</span>',
    'href'   => wp_nonce_url(
    add_query_arg(
    array(
    'action'    => 'change_post_status',
    'post_id'   => $post->ID,
    'new_status' => 'publish',
    ),
    admin_url('admin-post.php')
    ),
    'change_post_status'
    ),
    ));
    }if ($status !== 'draft') {
    $link_style = isset($status_styles['draft']) ? 'bold; color: ' . str_replace(['background-color: ', ';'], '', $status_styles['draft']) . ';' : '';$wp_admin_bar->add_node(array(
    'id'     => 'change_status_draft',
    'parent' => 'post_status',
    'title'  => '<span style="' . $link_style . '">Zu «Entwurf» ändern</span>',
    'href'   => wp_nonce_url(
    add_query_arg(
    array(
    'action'    => 'change_post_status',
    'post_id'   => $post->ID,
    'new_status' => 'draft',
    ),
    admin_url('admin-post.php')
    ),
    'change_post_status'
    ),
    ));
    }if ($status !== 'pending') {
    $link_style = isset($status_styles['pending']) ? 'color: ' . str_replace(['background-color: ', ';'], '', $status_styles['pending']) . ';' : '';$wp_admin_bar->add_node(array(
    'id'     => 'change_status_pending',
    'parent' => 'post_status',
    'title'  => '<span style="' . $link_style . '">Zu «Ausstehende Überprüfung» ändern</span>',
    'href'   => wp_nonce_url(
    add_query_arg(
    array(
    'action'    => 'change_post_status',
    'post_id'   => $post->ID,
    'new_status' => 'pending',
    ),
    admin_url('admin-post.php')
    ),
    'change_post_status'
    ),
    ));
    }
    }
    }
    add_action('admin_bar_menu', 'custom_post_status_in_admin_bar', 100);// Status ändern
    function handle_change_post_status() {
    if (isset($_GET['action']) && $_GET['action'] === 'change_post_status' && isset($_GET['post_id'], $_GET['new_status'])) {
    if (!current_user_can('edit_post', $_GET['post_id'])) {
    wp_die('Unzureichende Berechtigungen.');
    }check_admin_referer('change_post_status');$post_id = (int) $_GET['post_id'];
    $new_status = sanitize_key($_GET['new_status']);// Aktualisiere den Status
    $post_data = array(
    'ID'          => $post_id,
    'post_status' => $new_status,
    );
    wp_update_post($post_data);// Leite zurück
    wp_redirect(get_permalink($post_id));
    exit;
    }
    }
    add_action('admin_post_change_post_status', 'handle_change_post_status');

    Nach der Integration dieses Codes wird der Status des gerade bearbeiteten Beitrags neu in der schwarzen Admin-Leiste am oberen Rand angezeigt: z. B. «Entwurf», «Veröffentlicht» oder «Geplant»). Zudem können Sie den Status direkt in der Admin-Leiste ändern, ohne ins Backend wechseln zu müssen.

    Die Farben und Stylings der jeweiligen Label können Sie mittels CSS auf den Zeilen 16 bis 19 anpassen.

    Diese Funktion ist ein einfaches, aber effektives Upgrade für Ihren Workflow. Sie spart Zeit, erleichtert die Beitragsverwaltung und sorgt dafür, dass Sie jederzeit die Kontrolle über den Status Ihrer Inhalte haben.

    Werbung

    Keine Inhalte gefunden.

    Werbung

     

    Pin It on Pinterest

    Share This
    Überblick über den Datenschutz

    Diese Website verwendet Cookies, damit wir Ihnen die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in Ihrem Browser gespeichert und dienen dazu, Sie wiederzuerkennen, wenn Sie auf unsere Website zurückkehren, und unserem Team zu helfen, zu verstehen, welche Bereiche der Website Sie am interessantesten und nützlichsten finden.