cómo obtener contenido específico de una página

17 ago 2013, 18:05:42
Vistas: 16.9K
Votos: 1

abajo está mi código que funciona bien pero el problema es que no viene con las etiquetas html.. como etc... no tengo idea por qué...

<?php $recent = new WP_Query("page_id=2"); while($recent->have_posts()) : $recent->the_post();?>
    <?php 
    echo substr(get_the_excerpt(), 0,450);

     ?>
     <a href="<?php the_permalink() ?>" rel="bookmark">
             Más sobre nosotros
              </a>

abajo hay otro código donde las etiquetas html y todo está bien.. pero no puedo entender cómo hacer que el enlace permanente funcione allí.. el enlace permanente que puse allí no funciona.

<?php
$my_id = 2;
$page_id = get_post($my_id);
$content = $page_id->post_content;
echo substr($content, 0, 450);

?>
  <a href="<?php the_permalink() ?>" >Más sobre nosotros</a>

también cuál es la mejor manera de obtener contenido específico de una página como la forma de abajo

<h2>título</h2>
<div>imagen destacada </div>
<div>contenido</div>
<a href="<?php the_permalink() ?>" rel="bookmark">
0
Todas las respuestas a la pregunta 2
2

En lugar de llamar a WP_Query(), puedes usar get_post() y "configurar" el global $post. Probablemente esto sea un poco más eficiente que la respuesta de @tf, aunque las ideas son básicamente las mismas.

Ten en cuenta que, en ambos casos, deberías restablecer los datos de la publicación posteriormente.

/**
 * Muestra el contenido de la publicación. Opcionalmente permite pasar un ID de publicación
 * @uses the_content()
 *
 * @param int $id Opcional. ID de la publicación.
 * @param string $more_link_text Opcional. Texto para cuando hay más contenido.
 * @param bool $stripteaser Opcional. Eliminar el contenido previo al texto "más". Por defecto es falso.
 */
function sh_the_content_by_id( $post_id=0, $more_link_text = null, $stripteaser = false ){
    global $post;
    $post = &get_post($post_id);
    setup_postdata( $post, $more_link_text, $stripteaser );
    the_content();
    wp_reset_postdata();
}

Fuente: http://stephenharris.info/get-post-content-by-id/

17 ago 2013 18:47:11
Comentarios

Bueno, la lógica no es mía, solo tomé lo que había en la pregunta y lo mejoré un poco. ;) Si solo se trata de un post en el que estás interesado, tienes razón, por supuesto, en usar get_post. Sin embargo, como el bucle ya estaba ahí desde el principio, lo dejé así.

tfrommen tfrommen
17 ago 2013 18:53:10

enlace roto url

Jon Jon
23 abr 2021 14:46:35
0

(get_)the_excerpt() elimina las etiquetas HTML - por eso no tienes etiquetas HTML. ;)

Simplemente usa the_content() en lugar de the_excerpt() si deseas mostrar el contenido completo.

$recent = new WP_Query("page_id=2");
while ($recent->have_posts()) : $recent->the_post();
    echo '<a href="'.get_the_permalink().'" rel="bookmark">Enlace permanente</a>';
    the_content();
endwhile;
wp_reset_postdata();

En cuanto a la mejor manera de mostrar los datos de las publicaciones, deberías echar un vistazo a esto.

17 ago 2013 18:33:06