it-swarm.com.de

Wie alles in der PUBLISH-Metabox ausgeblendet wird, mit Ausnahme der Schaltfläche Move to Trash & PUBLISH

Ich habe einen benutzerdefinierten Beitragstyp (Kontakte genannt). Da dieser Beitragstyp nicht wie ein Beitrag funktioniert, möchte ich SAVE DRAFT, PREVIEW, Status, Visibility oder Publish Date nicht anzeigen.

Die einzigen Optionen, die ich anzeigen möchte, sind VERÖFFENTLICHEN und In den Papierkorb verschieben.

Gibt es eine Möglichkeit, diese anderen Optionen auszublenden? Wenn nicht, wie erstelle ich ein neues PUBLISH & Move to Trash, das ich einer neuen Metabox hinzufügen kann?

10
katemerart

Sie können die Optionen einfach mit CSS ausblenden. Dies fügt eine Anzeige hinzu: Kein Stil für die verschiedenen und kleineren Veröffentlichungsaktionen auf den Seiten post.php und post-new.php. Es wird auch nach einem bestimmten Beitragstyp gesucht, da diese beiden Dateien von allen Beitragstypen verwendet werden.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');
14
Brian Fegter

In diesem Beispiel können Sie auf einfache Weise festlegen, für welche Beitragstypen Sie die Veröffentlichungsoptionen ausblenden möchten. Im Beispiel werden sie für den integrierten Topftyp page und den benutzerdefinierten Beitragstyp cpt_portfolio ausgeblendet.

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

Wichtiges Update

Ich würde auch vorschlagen, dass Sie den Post-Status "Veröffentlicht" erzwingen, um das Speichern von Posts als Entwürfe zu vermeiden:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
1
Nabil Kadimi