¿Cómo mostrar el contenido de la página en una plantilla de página?
-
-
¿Cuáleselproblema?Estaes unaplantilla depágina,por lo quetiene acceso al contenido de lapágina.Pormedio de otra consulta separada,obtiene acceso a unapublicaciónespecífica,porejemplo,y asípuedegenerar su contenido.¿Entonces?What is the problem? This is a page template, so you have access to the page content. By means of another separate query you gain access to a specific post, for instance, and thus can output its content. So?
- 2
- 2013-03-11
- tfrommen
-
Tengapaciencia antes de votaren contra.Luchopor conseguirlo y luegoencontré la solución.Intenté hacerpreguntas y respuestas aquípara compartir la lógica con otros; creo que aclararáel hecho de unamanera que loestoybuscando.Espero que laspreguntas y respuestas le sean claras.Please be patient before voting down. I's struggling for it and then I found the solution. I tried to Q&A here to share the logic with others - I think it will clarify the fact in a way I's looking for it. Hope the Q & A is clear to you.
- 0
- 2013-03-11
- Mayeenul Islam
-
Enprimer lugar,**no ** rechacétupregunta.En segundo lugar,graciaspor compartir su conocimiento connosotros.Tienestoda la razón al hacerlo.Supongo queelproblemaes queesta _pregunta_nofuetan difícil de resolverpara los usuarios/desarrolladoresexperimentados de WP,así comoel hecho de que ustedpublicó lapregunta solo.Si desea hacerpreguntas y responder desdeelprincipio,simplementeincluya su respuesta/solución directamenteen lamismapáginaen la queescribe supregunta.Debajo delbotón _Publicar supregunta_ hay una casilla de verificación ** Responda supropiapregunta **.Gracias denuevo.Firstly, I did **not** downvote your question. Secondly, thanks for sharing your knowledge with us. You're absolutely right to do so. I guess, the problem is/was that this _question_ was not that hard to solve for experienced WP users/developers, as well as the fact that you posted the question alone. If you want to question & answer right from the start, just include your answer/solution directly on the same page that you write your question on. Below the _Post Your Question_ button there is a check box **Answer your own question**. Thanks again.
- 0
- 2013-03-11
- tfrommen
-
`wp_reset_postdata ()`parael rescate.Debe realizarse después de cada consultapersonalizada.`wp_reset_postdata()` for the rescue. Should be done _after each custom query_.
- 0
- 2013-03-11
- kaiser
-
2 respuestas
- votos
-
- 2013-03-11
Estoy usando dosbucles. Elprimer cicloesparamostrarel contenido de lapágina yel segundo cicloesparamostrarel contenido de lapublicación consultada. Comenté los códigos cuandofuenecesario. Hice hincapiéen losbucles,como Deckster0 dijo en el soporte de WordPress que
the_content()
solofunciona dentro de unbucle de WordPress. Estoy colocandoeste códigoen mipropiaplantilla:<?php /* * Template Name: My Template */ get_header(); ?> <div id="container"> <div id="content" class="pageContent"> <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title --> <?php // TO SHOW THE PAGE CONTENTS while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop --> <div class="entry-content-page"> <?php the_content(); ?> <!-- Page Content --> </div><!-- .entry-content-page --> <?php endwhile; //resetting the page loop wp_reset_query(); //resetting the page query ?> <?php // TO SHOW THE POST CONTENTS ?> <?php $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example ?> <?php if ( $my_query->have_posts() ) : ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title --> <div class="entry-content"> <?php the_excerpt(); ?> <!-- Queried Post Excerpts --> </div><!-- .entry-content --> <?php endwhile; //resetting the post loop ?> </div><!-- #post-<?php the_ID(); ?> --> <?php wp_reset_postdata(); //resetting the post query endif; ?> </div><!-- #content --> </div><!-- #container -->
I'm using two loops. First loop is to show the page content, and the second loop is to show the queried post contents. I commented into the codes where necessary. I emphasized into the loops, as Deckster0 said in WordPress support that,
the_content()
works only inside a WordPress Loop. I'm placing these code into a my own template:<?php /* * Template Name: My Template */ get_header(); ?> <div id="container"> <div id="content" class="pageContent"> <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title --> <?php // TO SHOW THE PAGE CONTENTS while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop --> <div class="entry-content-page"> <?php the_content(); ?> <!-- Page Content --> </div><!-- .entry-content-page --> <?php endwhile; //resetting the page loop wp_reset_query(); //resetting the page query ?> <?php // TO SHOW THE POST CONTENTS ?> <?php $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example ?> <?php if ( $my_query->have_posts() ) : ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title --> <div class="entry-content"> <?php the_excerpt(); ?> <!-- Queried Post Excerpts --> </div><!-- .entry-content --> <?php endwhile; //resetting the post loop ?> </div><!-- #post-<?php the_ID(); ?> --> <?php wp_reset_postdata(); //resetting the post query endif; ?> </div><!-- #content --> </div><!-- #container -->
-
Esa segunda consultano deberíaestar dentro de `if (have_posts ())`porqueesa declaración siempre será verdadera.Debe llamar a `if ($my_query-> have_posts ())` después de `$my_query=new WP_Query ('cat=1');` y args líneas si desea comprobar que la consultatiene resultados.That second query shouldn't be inside `if( have_posts() )` because that statement will always be true. You should call `if( $my_query->have_posts() )` after the `$my_query = new WP_Query( 'cat=1' );` and args lines if you want to check that query has results.
- 0
- 2013-04-12
- t31os
-
@t31ostienes razón.Queesmi culpa.Ahora corrigióel código atal.Graciaspor laidentificación.:)@t31os you are right. It's my fault. Now corrected the code to such. Thanks for the identification. :)
- 0
- 2014-05-28
- Mayeenul Islam
-
- 2013-03-11
Dosbucles son comunespara haceresto,pero unpoco sobredosis.
Cadapublicación opágina leproporciona la supervariable
$post
.¿Alguna vez sepreguntópor qué suget_post_meta()
funciona con un$post->ID
;) simple?Por lotanto,antes deiniciar WP_Query () que obtiene suspublicacionesenumeradas,puede acceder a los datos de lapágina/publicación actual con
$post->ID
,$post->post_content
,$post->guid
y así sucesivamente.Enelbucle,esta variable se llena con lapublicaciónen bucle.Paraguardarloparamástarde,puede crear unanueva variable
$temp_post = $post // new WP_Query() + loop here
o llama
wp_reset_query ()
después de la lista.La últimafunción debe llamarse detodosmodospara asegurarse de que los datosen subarra lateral sean los correctospara lapágina/publicación actual.
Two loops is common to do this, but a bit overdosed.
Every post or page gives you the super-variable
$post
. Ever wondered why yourget_post_meta()
works with a simple$post->ID
;) ?So, before you start the WP_Query() that gets your listed posts, you can access the current page-/post-data with
$post->ID
,$post->post_content
,$post->guid
and so on.In the loop, this variable gets filled by the looped post. To save it for later, you can either make a new variable
$temp_post = $post // new WP_Query() + loop here
or call
wp_reset_query()
after the listing. The last function should be called anyway to ensure that the data in your sidebar is the right for the current page/post.
Enmi sitio de WordPress,hice unaplantilla depáginapersonalizada,que contenía una consultapersonalizada [usando
WP_Query()
].Conesa consulta,puedo obtenerperfectamente laspublicaciones de una determinada categoría.Pero quieromostrarel contenido de lapáginajunto con laspublicaciones consultadas.La cosa será como:
---------------------------
Encabezado depágina
contenido de lapágina
Encabezado de lapublicación consultada
contenido de lapublicación consultada
---------------------------