WordPress: Artikelstatus im Backend anzeigen

Oft hat man z. B. Artikelentwürfe, die auf Rechtschreibung, Quellenangaben etc. geprüft werden müssen.

Die folgende Funktion fügt ein Dropdownfeld im „Artikel erstellen“ Bereich ein und gibt den Status in der Artikelübersicht aus.

Die Statusnachrichten können je nach Bedarf angepasst werden. Es ist nur darauf zu achten, das die Namen im Array mit den Namen bei der Farbangabe übereinstimmen.

        add_filter( 'display_post_states','custom_post_state');
        function custom_post_state( $states ) {
                global $post;
                $show_custom_state = get_post_meta( $post->ID, '_status' );
                   if ( $show_custom_state ) {
                        $states[] = __( '<span class="custom_state '.strtolower($show_custom_state[0]).'">'.$show_custom_state[0].'</span>' );
                        }
                return $states;
        }
        add_action( 'post_submitbox_misc_actions', 'custom_status_metabox' );
        function custom_status_metabox(){
                global $post;
                $custom  = get_post_custom($post-&gt;ID);
                $status  = $custom["_status"][0];
                $i   = 0;
                /* ----------------------------------- */
                /*   Array of custom status messages            */
                /* ----------------------------------- */
                $custom_status = array(
                                'Spelling',
                                'Review',
                                'Errors',
                                'Source',
                                'Rejected',
                                'Final',
                        );
                echo '<div class="misc-pub-section custom">';
                echo '<label>Custom status: </label>';
                echo 'Custom status';
                echo '-----------------';
                for($i=0;$i&lt;count($custom_status);$i++){
                        if($status == $custom_status[$i]){
                            echo &#039;'.$custom_status[$i].'';
                          }else{
                            echo ''.$custom_status[$i].'';
                          }
                        }
                echo '';
                echo '<br /></div>';
        }
        add_action('save_post', 'save_status');
        function save_status(){
                global $post;
                if (defined('DOING_AUTOSAVE') &amp;&amp; DOING_AUTOSAVE){ return $post-&gt;ID; }
                update_post_meta($post-&gt;ID, "_status", $_POST["status"]);
        }
        add_action( 'admin_head', 'status_css' );
        function status_css() {
                echo '
                .default{font-weight:bold;}
                .custom{border-top:solid 1px #e5e5e5;}
                .custom_state{
                        font-size:9px;
                        color:#666;
                        background:#e5e5e5;
                        padding:3px 6px 3px 6px;
                        -moz-border-radius:3px;
                        }
                        /* ----------------------------------- */
                        /*   change color of messages bellow            */
                        /* ----------------------------------- */
                        .spelling{background:#4BC8EB;color:#fff;}
                        .review{background:#CB4BEB;color:#fff;}
                        .errors{background:#FF0000;color:#fff;}
                        .source{background:#D7E01F;color:#333;}
                        .rejected{background:#000000;color:#fff;}
                        .final{background:#DE9414;color:#333;}
                        ';
        }

Quelle: wpsnipp.com