¿Combinar dos tipos de publicaciones personalizadas en una página de administrador?

9

Estoy construyendo un sitio con 4 tipos de publicaciones personalizadas. Para facilitar las cosas a nuestro cliente / administrador, me pregunto si hay una manera de combinar esos tipos de publicaciones personalizadas en una lista en el back-end. Por ejemplo, si mira la página de administración de backend normal con la lista y las columnas de publicaciones, ¿puede una página como esa incorporar otros 3 tipos de publicaciones para ordenar / buscar fácilmente?

No puedo combinar los CPT en uno, si es posible, deben permanecer separados fuera de una página de 'visualización' en el área de administración.

¿Alguna idea sobre cómo hacer esto? ¿O incluso dónde empezar a buscar / pensar en cómo desarrollar esto?

Aaron
fuente
1
Tal vez podría considerar usar 1 CPT, luego crear una taxonomía personalizada con 2 términos que separen las publicaciones en el único CPT. Luego puede hacer algo de lógica en la parte superior de los archivos de plantilla de front-end para enviar a los visitantes a otra plantilla en función de los términos / impuestos
Sy Holloway

Respuestas:

2

Solo un punto de partida, ya que seguramente surgirán problemas durante el desarrollo posterior. Por ejemplo, en este momento, la funcionalidad de búsqueda se rompe ya que espera una cadena (post_type) y recibe una matriz.

Para enumerar más de un tipo de publicación en la pantalla Publicaciones, conectamos pre_get_postsy modificamos la consulta. En esta prueba, las publicaciones, las páginas y los productos se mostrarán juntos en la pantalla Publicaciones ( 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;
}

Un código auxiliar para mostrar una columna con cada publicación Tipo de publicación:

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
fuente
0

Recomiendo Admin Menu Editor pro para esto. Lo enlazaré en la parte inferior.

Interesante. En cierto proyecto en el que estaba trabajando, tenía varios CPT (tipos de publicaciones personalizadas) que estaban relacionados. La sección era 'Centro de información' y querían que los comunicados de prensa, los libros blancos, los testimonios, etc. estuvieran dentro del centro de información. En el frente, crear esto fue fácil. En el extremo posterior, también queríamos que encajara lógicamente. La mayoría de los tipos de publicaciones personalizadas se establecieron como CPT debido a contenido específico (metafileds) y requisitos de diseño. Terminamos teniendo, como, cerca de 20 CPT.

Dicho esto, usamos el complemento del editor de administración para eliminar los CPT del Centro de información relacionados del menú de fondo y luego creamos un menú de 'Centro de información' con los enlaces CPT relacionados dentro. Si bien todos parecían combinados, no lo eran.

Aquí está el enlace del complemento: http://adminmenueditor.com/ pruebe también la demostración.

Alex V.
fuente
¿Cómo creaste el enlace "Centro de información"?
viernes