Fügen Sie einen neuen benutzerdefinierten Poststatus über register_post_status in WordPress hinzu

Lesezeit: 2 Minuten

Benutzer-Avatar
Jigar

Ich möchte meinem Blog-Beitrag einen benutzerdefinierten Beitragsstatus hinzufügen.

Ich habe den folgenden Code in meiner Datei functions.php hinzugefügt, aber ich kann diesen Beitragsstatus nicht in der Schnellbearbeitung, auf der Seite „Neue Seite posten“ und auf der Seite „Beitrag bearbeiten“ sehen. Irgendein Rat?

  function my_register_post_status() {
    $my_status_args = array(
        'label' => __('Activated', 'my'),
        'label_count' => __('Activated', 'my'),
        'exclude_from_search' => false,
        'public' => true,
        'publicly_queryable' => true,
        'show_in_admin_status_list' => true,
        'show_in_admin_all_list' => true,
    );
    register_post_status( 'status', $my_status_args );
}
add_action( 'init', 'my_register_post_status' );

Angehängte Screenshots:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Hier ist der Code zum Hinzufügen eines neuen benutzerdefinierten Status in der Schnellbearbeitung und in “Neue Seite posten” und “Post-Bearbeitungsseite”.

   function my_custom_status_creation(){
        register_post_status( 'approved', array(
            'label'                     => _x( 'Approved', 'post' ),
            'label_count'               => _n_noop( 'Approved <span class="count">(%s)</span>', 'Approved <span class="count">(%s)</span>'),
            'public'                    => true,
            'exclude_from_search'       => false,
            'show_in_admin_all_list'    => true,
            'show_in_admin_status_list' => true
        ));
    }
    add_action( 'init', 'my_custom_status_creation' );

    function my_custom_status_add_in_quick_edit() {
        echo "<script>
        jQuery(document).ready( function() {
            jQuery( 'select[name=\"_status\"]' ).append( '<option value=\"approved\">Approved</option>' );      
        }); 
        </script>";
    }
    add_action('admin_footer-edit.php','my_custom_status_add_in_quick_edit');
    function my_custom_status_add_in_post_page() {
        echo "<script>
        jQuery(document).ready( function() {        
            jQuery( 'select[name=\"post_status\"]' ).append( '<option value=\"approved\">Approved</option>' );
        });
        </script>";
    }
    add_action('admin_footer-post.php', 'my_custom_status_add_in_post_page');
    add_action('admin_footer-post-new.php', 'my_custom_status_add_in_post_page');

Benutzer-Avatar
Omar Tanti

Sie müssen Javascript hinzufügen, um den Status als Option in der Auswahl anzuzeigen. Versuchen Sie etwas wie das Folgende:

function append_post_status_list() {
        global $post;
        $label    = " Activate";
        $complete = "<option value="activated">$label</option>";
        if ( $post->post_status == 'activated' ) {
            $label    = " Activated";
            $complete = "<option value="activated" selected='selected'>$label</option>";
        }

        ob_start();
        ?>
        <script>
            jQuery(document).ready(function ($) {
                var label = "<?= $label ?>";
                $("select#post_status").append("<?= $complete ?>");
                if (' Activated' == label){
                    $(".misc-pub-section #post-status-display").html(label);
                }
            });
        </script>
        <?php
        echo ob_get_clean();
}
add_action( 'admin_footer-post.php', 'append_post_status_list' );

1011390cookie-checkFügen Sie einen neuen benutzerdefinierten Poststatus über register_post_status in WordPress hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy