Mostrando el contenido de una entrada individual

7 sept 2014, 13:21:36
Vistas: 75.2K
Votos: 5

¿Cómo puedo mostrar el contenido de una entrada individual? Mi código:

if (is_single()){
    get_header();
    get_sidebar('left-article');
    render_article();
    get_footer();
}

En render_article llamo a single_post_title() para obtener el título de la entrada. Sin embargo, no sé cómo obtener la hora y el contenido de la entrada ya que no encuentro ninguna función como single_post_content() o single_post_time().

1
Comentarios

Necesitas estudiar esto primero

Nilambar Sharma Nilambar Sharma
7 sept 2014 13:28:38
Todas las respuestas a la pregunta 5
0
13
  1. Crea un archivo llamado single.php. Este archivo automáticamente obtendrá todas tus entradas individuales. Para más información sobre la jerarquía de plantillas de WordPress, lee el Codex

  2. Dentro de single.php, ejecuta el loop predeterminado y obtén header.php, sidebar.php y footer.php

    <?php get_header(); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
     <?php the_title(); ?>
     <?php the_content(); ?>
     <?php echo get_the_date(); ?>
    
    <?php endwhile; ?>
    <?php endif; ?>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    
7 sept 2014 13:39:53
0

puedes usar la siguiente función para obtener el contenido de una publicación de WordPress

     <?php echo get_the_content(); ?>

y puedes usar la siguiente función para obtener el título

    <?php echo get_the_title(); ?>

para obtener la fecha puedes usar esta función

    <?php echo echo get_the_date(); ?>
30 mar 2018 15:30:17
0
function my_category_templates($single_template) {
    global $post;

    if ( in_category( 'Ofertas' )) {  // Cambiado 'Offers' por 'Ofertas'
        $single_template = dirname( __FILE__ ) . '/single-offer.php';
    }

    // Copia lo anterior para tus otras categorías

    return $single_template;
}

add_filter( "single_template", "my_category_templates" );
16 nov 2016 14:27:57
0

Usa get_post() para obtener una publicación específica

get_post()

Ejemplo:

<?php $postData = get_post( $id, $output, $filter ); 

echo "<pre>";
print_r($postData);
?>

https://developer.wordpress.org/reference/functions/get_post/

https://www.tipsandtricks-hq.com/query-or-show-a-specific-post-in-wordpress-php-code-example-44

16 ene 2017 08:28:37
0

Esta es una pregunta antigua, pero ninguna de las respuestas aquí explica la forma correcta de hacer esto, por lo que quiero proporcionar una alternativa mejor. No es necesario usar un montón de funciones globales aleatorias o depender de un estado global nebuloso creado por este terrible "The Loop".

Si estás mostrando el contenido de una sola entrada, entonces necesitas crear un archivo llamado "single.php" dentro del directorio de tu tema. (https://developer.wordpress.org/themes/basics/template-hierarchy/) Este será la plantilla para tus entradas.

single.php

<?php

    namespace mytheme; // Debes designar un espacio de nombres para tu tema para que no entre en conflicto con WordPress, su tema padre o cualquier plugin que puedas tener instalado.

    defined('ABSPATH') || exit; // Salir si el archivo se está ejecutando directamente en lugar de por WordPress.

    $post = get_queried_object(); // Este objeto contiene todos los datos sobre la entrada que necesitas. No necesitas usar un montón de funciones globales aleatorias o The Loop para obtener los datos de la entrada. Si quieres ver el contenido de este objeto, usa var_dump al depurar.

    if (!$post) {
        $wp_query->set_404();
        status_header(404);
        http_response_code(404);
        exit;
    }

    get_header();
?>

<main>
    <h1><?php echo strip_tags($post->post_title); ?></h1>
    <?php if ($post->post_content) { ?>
        <div>
            <?php echo do_shortcode(apply_filters('the_content', $post->post_content)); ?>
        </div>
    <?php } ?>
</main>

<?php get_footer(); ?>
19 dic 2022 22:18:54