it-swarm.com.de

Zwei benutzerdefinierte Beitragstypen zu einer Admin-Seite zusammenführen?

Ich baue eine Site mit 4 benutzerdefinierten Beitragstypen auf. Um die Arbeit für unseren Kunden/Administrator zu vereinfachen, frage ich mich, ob es eine Möglichkeit gibt, diese benutzerdefinierten Beitragstypen in einer Liste im Backend zusammenzuführen. Wenn Sie sich beispielsweise die normale Backend-Admin-Seite mit der Liste und den Spalten der Beiträge ansehen, können Sie dann für eine solche Seite drei weitere Beitragstypen zum einfachen Sortieren/Suchen hinzufügen?

Ich kann die CPTs nicht zu einer kombinieren, sie müssen nach Möglichkeit außerhalb einer Ansichtsseite im Administrationsbereich getrennt bleiben.

Irgendwelche Gedanken darüber, wie das geht ?? Oder sogar, wo man anfängt zu suchen/darüber nachzudenken, wie man dies entwickelt?

9
Aaron

Nur ein Ansatzpunkt, da sicherlich Probleme bei der Weiterentwicklung auftauchen werden. Im Moment bricht die Suchfunktion beispielsweise ab, da sie eine Zeichenfolge (post_type) erwartet und ein Array empfängt.

Um mehr als einen Beitragstyp im Beitragsbildschirm aufzulisten, schließen wir uns an pre_get_posts an und ändern die Abfrage. In diesem Test werden Posts, Pages und Products zusammen im Posts-Bildschirm angezeigt (http://example.com/wp-admin/edit.php).

add_action( 'pre_get_posts', 'join_cpt_list_wspe_113808' );

function join_cpt_list_wspe_113808( $query ) 
{
    // If not backend, bail out
    if( !is_admin() )
        return $query;

    // Detect current page and list of CPTs to be shown in Dashboard > Posts > Edit screen
    global $pagenow;
    $cpts = array( 'post', 'page', 'product' );

    if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'post' == get_query_var('post_type') ) )
        $query->set( 'post_type', $cpts );

    return $query;
}

Ein Hilfecode zum Anzeigen einer Spalte mit jedem Beitrag Beitragstyp:

add_filter( 'manage_edit-post_columns', 'add_cpt_column_wspe_113808' );
foreach( array( 'post', 'page', 'product' ) as $cpt )
    add_action( "manage_{$cpt}_posts_custom_column", 'show_cpt_column_wspe_113808', 10, 2 );

function add_cpt_column_wspe_113808( $columns ) 
{
    $columns[ 'cpt' ] = 'Post Type';
    return $columns;
}

function show_cpt_column_wspe_113808( $column_name, $post_id ) 
{
    if ( 'cpt' != $column_name )
        return;
    echo get_post_type( $post_id );
}
2
brasofilo

Ich würde Admin Menu Editor pro dafür empfehlen. Ich werde unten darauf verlinken.

Interessant. An einem bestimmten Projekt, an dem ich gearbeitet habe, hatte ich mehrere CPTs (benutzerdefinierte Beitragstypen), die irgendwie miteinander verwandt waren. Die Sektion war 'Info Center' und sie wollten, dass Pressemitteilungen, White Papers, Testimonials usw. im Info Center sind. Am Frontend war es einfach, dies zu erstellen. Am Backend wollten wir, dass es auch logisch zusammenpasst. Die meisten benutzerdefinierten Beitragstypen wurden aufgrund spezifischer Inhalte (Metadateien) und Layoutanforderungen als CPTs festgelegt. Am Ende hatten wir ungefähr 20 CPTs.

Das heißt, wir haben das Admin-Editor-Plugin verwendet, um die zugehörigen Info Center-CPTs aus dem Backend-Menü zu entfernen, und dann ein Info Center-Menü mit den zugehörigen CPT-Links erstellt. Obwohl sie alle zusammen schienen, waren sie es nicht.

Hier ist der Plugin-Link: http://adminmenueditor.com/ Probieren Sie auch die Demo aus.

0
Alex V.