Scalić dwa niestandardowe typy postów w jedną stronę administratora?


9

Tworzę witrynę z 4 niestandardowymi typami postów. Aby ułatwić naszemu klientowi / administratorowi, zastanawiam się, czy istnieje sposób na połączenie tych niestandardowych typów postów w jedną listę w zapleczu? Na przykład, jeśli spojrzysz na zwykłą stronę administracyjną zaplecza z listą i kolumnami postów, czy taka strona może pobrać 3 inne typy postów w celu łatwego sortowania / wyszukiwania?

Nie mogę łączyć CPT w jeden, jeśli to możliwe, muszą pozostać osobno poza jedną stroną „przeglądania” w obszarze administracyjnym.

Wszelkie przemyślenia, jak to zrobić? A nawet gdzie zacząć szukać / zastanawiać się, jak to rozwinąć?


1
Możesz spojrzeć na użycie 1 CPT, a następnie utworzyć niestandardową taksonomię z 2 terminami oddzielającymi posty w jednym CPT. Następnie można wykonać logikę u góry plików szablonów interfejsu użytkownika, aby odesłać odwiedzających do innego szablonu opartego na warunkach / podatkach
Sy Holloway,

Odpowiedzi:


2

To tylko punkt wyjścia, ponieważ z pewnością problemy pojawią się podczas dalszego rozwoju. Na przykład teraz funkcja wyszukiwania ulega awarii, ponieważ oczekuje ciągu (typ_typu) i odbiera tablicę.

Aby wyświetlić więcej niż jeden typ postu na ekranie Posty, podłączamy się pre_get_postsi modyfikujemy zapytanie. W tym teście posty, strony i produkty będą wyświetlane razem na ekranie postów ( 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;
}

Kod pomocnika pokazujący kolumnę z każdym postem Typ postu:

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 );
}

0

Polecam do tego Admin Menu Editor pro. Link do niego na dole.

Ciekawy. Przy pewnym projekcie, nad którym pracowałem, miałem kilka CPT (niestandardowych typów postów), które były ze sobą powiązane. Dział ten brzmiał „Centrum informacyjne” i chcieli, aby w centrum informacyjnym znajdowały się informacje prasowe, oficjalne dokumenty, referencje itp. Z przodu tworzenie tego było łatwe. Z tyłu chcieliśmy, aby logicznie do siebie pasowało. Większość niestandardowych typów postów została ustawiona jako CPT ze względu na określoną zawartość (meta fils) i wymagania dotyczące układu. Skończyło się na tym, że mieliśmy prawie 20 CPT.

To powiedziawszy, użyliśmy wtyczki edytora administracyjnego, aby usunąć powiązane Centrum informacyjne CPT z menu zaplecza, a następnie utworzyliśmy menu „Centrum informacyjne” z powiązanymi powiązaniami CPT. Chociaż wszystkie wydawały się połączone, nie były.

Oto link do wtyczki: http://adminmenueditor.com/ również wypróbuj wersję demo.


Jak utworzyłeś link „Centrum informacyjne”?
frnhr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.