{"id":15658,"date":"2013-07-31T09:04:34","date_gmt":"2013-07-31T09:04:34","guid":{"rendered":"https:\/\/es.wordpress.org\/support\/topic\/multisite-wp-custom-list-posts-pre_get_posts-switch_to_blog-1\/"},"modified":"2019-04-02T15:17:54","modified_gmt":"2019-04-02T15:17:54","slug":"multisite-wp-custom-list-posts-pre_get_posts-switch_to_blog-1","status":"closed","type":"topic","link":"https:\/\/es.wordpress.org\/support\/topic\/multisite-wp-custom-list-posts-pre_get_posts-switch_to_blog-1\/","title":{"rendered":"Multisite WP, Custom List Posts, \u00abpre_get_posts\u00bb, \u00abswitch_to_blog\u00bb"},"content":{"rendered":"<p>Buenos d\u00edas,<\/p>\n<p>Ante todo gracias por brindar a devoloper un foro de consulta. WordPress sin duda hac\u00e9is un gran trabajo todos y toda la comunidad.<\/p>\n<p>Disculparme si este post no esta bien colocado, espero poder seguir aportando y que me pod\u00e1is aportar luz en el camino de un pleno desarrollo.<\/p>\n<p>Os comento, el problema que tengo es algo complicado incluso de hacer entender, pero estoy mas que bloqueado desde hace d\u00edas. (Y si no consigo salir de este agujero con alguna soluci\u00f3n, en mi empresa buscaran a otro)<\/p>\n<p>Informaci\u00f3n general<\/p>\n<ul>\n<li>He realizado un Custom Type desde 0, es decir, tengo un menu personalizado de Portfolio con un Form hecho a mi medida, este form al macena correctamente en la BBDD incluso en una tabla realizada por mi<\/li>\n<li>Este WP con tiene 3 blogs, elaborados en Multisite. Cada uno de ellos tienen el form y almacenan devidamente en sus tablas y en la mia<\/li>\n<li>El listado de Posts creados en este Portfolio, funciona pero solo visualiza los post creados en cada Blog del multisite<\/li>\n<\/ul>\n<p>Problema:<br \/>\n&#8211; La idea que quiere el cliente es que el tendra accesso al Superadmin para manipular cada uno de los Blogs que cuelgan del general, esto sin problema esta realizado. El problema vienen que en el blog 1 si creas un posts del portfolio y seleccionas (el form) que quieres que sea visible en el blog 2 y 3, esto cuando se guarda lo almacena en mi tabla para que quede constancia.<\/p>\n<p>En el listado de post del blog 1, saldra el creado en el Blog 1, pero si me voy en listado del Blog 2, deberia verse los posts creado en el mismo blog y los de los otros blogs que han seleccionado en el form que se vieran (pero estos posts no serian editables en el blog 2, sino en el blog de procedencia), es decir, solo se listarian los posts del mismo blog mas el de los otros.<\/p>\n<p>Codigo hasta ahora: (listar los blogs es posible ya que los tengo en un array)<\/p>\n<pre><code>add_action( &#039;pre_get_posts&#039; ,&#039;include_this_portfolio&#039; );\nfunction include_this_portfolio( $query ) {\n        global $blog_id;\n\n        \/\/Si no es admin lista normal\n        if( !is_admin() )\n                return $query;\n\n        global $pagenow;\n\n        \/\/Si la pagina es edit, visualiza. Para filtrar que no se vea en otras paginas.\n        if( &#039;edit.php&#039; == $pagenow &amp;&amp; ( get_query_var(&#039;post_type&#039;) &amp;&amp; &#039;portfolio&#039; == get_query_var(&#039;post_type&#039;) ) ){\n\n        $query-&gt;set( &#039;post__in&#039;, array(37) ); \/\/ array page ids Incluye\n\n        }\n        return $query;\n}<\/code><\/pre>\n<p>Posible sugerencia:<\/p>\n<p>Usando,<\/p>\n<pre><code>switch_to_blog() -&gt;Cambiamos de blog.\npre_get_posts -&gt; Editamos la funcion del listado\nloop_start -&gt; Recorrer todos los blogs\nrestore_current_blog()-&gt; restaurar al blog actual\nadd_filter(posts_results -&gt; Para visualizar todo el listado creado.<\/code><\/pre>\n<p>Con todo esto deber\u00eda conseguirlo me supongo, pero ya estoy perdido.<\/p>\n<p>Alguien me podr\u00eda ayudar con alguna luz en el camino, antes que me despidan.<\/p>\n<p>Saludos y mil gracias de antemano.<\/p>\n<p>atte.Gerard<\/p>\n","protected":false},"template":"","class_list":["post-15658","topic","type-topic","status-closed","hentry","topic-tag-query"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/15658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":5,"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/15658\/revisions"}],"predecessor-version":[{"id":88299,"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/15658\/revisions\/88299"}],"wp:attachment":[{"href":"https:\/\/es.wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=15658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}