Soporte » Multisitio » Listado de posts de toda la red en multisite

  • Hola, he hecho búsquedas y no he encontrado ninguna pregunta similar, por otro lado no se si este hilo es mejor en «Multisite» o en «WordPress Avanzado».

    Mi duda es la siguiente, tengo un multisite con más de 20 sitios, todos comparten un listado de tags (custom taxonomy), lo que necesito, es mostrar en el sitio principal el listado de posts en base a un término concreto de esa taxonomía. Algo como hace WordPress.com aquí: https://en.wordpress.com/tag/digital-marketing/

    Me rondan la cabeza dos ideas:
    1. Recorrer todos los blogs con swtich_to_blog() y ejecutar en cada uno la query que necesito, (luego tendría que reagruparlos en un array y reordenarlos).
    2. Usar alguna tabla común (varias, por que hay que guardar también el taxonomy) a todos los blogs donde vaya metiendo los posts de cada sitio una vez se publiquen.

    He buscado también plugins pero no he encontrado ninguno que permita hacer eso.

Viendo 3 respuestas - 1 de 3 (de 3 total)
  • Moderador LGrusin

    (@lgrusin)

    Desde wisdmlabs.com tienes un código para recoger todos los posts de todos los sitios.

    function display_blogs() {
     // loop through all blogs
     $all_blog = wp_get_sites();
     foreach ($blog_ids as $key=>$current_blog) {
      // switch to each blog to get the posts
      switch_to_blog($current_blog['blog_id']);
      // fetch all the posts
      $blog_posts = get_posts(array( 'posts_per_page' => -1));
      restore_current_blog();
      // display all posts
      }
    }

    Lo que no tengo tan claro es el rendimiento cuando hagas una consulta de este tipo, me parece un consumo de recursos innecesario.

    Un saludo

    Gracias @lgrusin, esa solución usando switch_to_blog es la más básica, aunque para hacer un listado cronológico que mezcle resultados de todos los blogs habría que hacer varias operaciones más.

    Dejo aquí otras posibles alternativas:

    No he probado ninguna de las dos aún, pero creo que son las dos mejores soluciones que he encontrado

    Muchas gracias de nuevo!

    • Esta respuesta fue modificada hace 1 año, 10 meses por  dacmail.
    Moderador Mariano Perez

    (@mpcdigital)

    Estos plugins te pueden valer:

    * Este más sencillo: https://premium.wpmudev.org/project/recent-posts/
    * Y este que hace más cosas: https://premium.wpmudev.org/project/post-indexer/

Viendo 3 respuestas - 1 de 3 (de 3 total)
  • El debate ‘Listado de posts de toda la red en multisite’ está cerrado a nuevas respuestas.