Zwei benutzerdefinierte Beitragstypen auf einer Administrationsseite zusammenführen?

9

Ich baue eine Site mit 4 benutzerdefinierten Beitragstypen. Um es unserem Kunden / Administrator zu erleichtern, frage ich mich, ob es eine Möglichkeit gibt, diese benutzerdefinierten Beitragstypen in einer Liste im Backend zusammenzuführen. Wenn Sie sich beispielsweise eine normale Backend-Administrationsseite mit der Liste und den Spalten der Beiträge ansehen, kann eine solche Seite 3 andere Beitragstypen zum einfachen Sortieren / Suchen einschließen?

Ich kann die CPTs nicht zu einem kombinieren. Sie müssen nach Möglichkeit außerhalb einer Anzeigeseite im Administrationsbereich getrennt bleiben.

Irgendwelche Gedanken darüber, wie das geht? Oder wo soll man anfangen zu überlegen, wie man das entwickelt?

Aaron
quelle
1
Sie könnten sich vielleicht die Verwendung von 1 CPT ansehen und dann eine benutzerdefinierte Taxonomie mit 2 Begriffen erstellen, die die Beiträge im einzelnen CPT trennen. Sie können dann oben in den Front-End-Vorlagendateien eine Logik ausführen, um Besucher zu einer anderen Vorlage zu schicken, die auf Begriffen / Steuern basiert
Sy Holloway,

Antworten:

2

Nur ein Ausgangspunkt, da bei der weiteren Entwicklung sicherlich Probleme auftauchen werden. Derzeit wird die Suchfunktion beispielsweise unterbrochen, da eine Zeichenfolge (post_type) erwartet wird und ein Array empfangen wird.

Um mehr als einen Beitragstyp im Bildschirm "Beiträge" aufzulisten, schließen wir pre_get_postsdie Abfrage an und ändern sie. In diesem Test werden Beiträge, Seiten und Produkte zusammen auf dem Bildschirm "Beiträge" ( http://example.com/wp-admin/edit.php) angezeigt .

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 für jeden 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 );
}
brasofilo
quelle
0

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

Interessant. Bei einem bestimmten Projekt, an dem ich arbeitete, hatte ich mehrere CPTs (benutzerdefinierte Beitragstypen), die irgendwie verwandt waren. Der Abschnitt 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 hinteren Ende 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 fast 20 CPTs.

Wir haben jedoch das Admin-Editor-Plugin verwendet, um die zugehörigen Info Center-CPTs aus dem Back-End-Menü zu entfernen, und anschließend ein 'Info Center'-Menü mit den zugehörigen CPT-Links erstellt. Während sie alle kombiniert schienen, waren sie es nicht.

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

Alex V.
quelle
Wie haben Sie den Link "Info Center" erstellt?
Freitag,