Themes y Diseño

Foro WordPress » WordPress » Themes y Diseño

Más post de la misma categoría (9 mensajes)

Acerca de este hilo

Tags

Etiquetas:

No hay tags todavía.

  1. Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    Cómo hacer para mostrar junto a cada pos, un listado de los últimos post de la categoría a la que pertenece dicho pos?

    En este theme premiun se puede ver a lo que me refiero.

    No soy amigo de los plugin, supongo que se podrá hacer con puro código directamente en la plantilla..

    Saludos!

  2. thinway

    Moderador
    Antiguedad: Ene 2009
    Mensajes: 373

    offline

    Publicado hace 2 años
    #

    Sabogal, échale un vistazo al siguiente link:

    http://www.kimwoodbridge.com/wordpress-how-to-list-recent-posts-from-one-category/

    a ver si es lo que estás buscando.

    Y aún a pesar de que no te gustan los plugins te dejo uno que hace lo que necesitas:

    http://wordpress.org/extend/plugins/list-category-posts/

    Después de todo no es tan malo usarlos con moderación

    Un saludo

  3. Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    He probado las dos opciones y no lo he podido conseguir.

    Gracias por el enlace, creo que me puede servir para otra tarea que tengo por ahí pendiente.

    Saludos!

  4. Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    Me han facilitado el siguiente código que hace exactamente lo que necesito pero me da un error:

    < ?php while ($the_query- >have_posts()) : $the_query- >the_post(); $do_not_duplicate = $post- >ID;? >
    <li><a title="Permanent Link to ">" rel="bookmark" >< ?php the_title(); ? >
    < ?php endwhile; ? >

    El error que me da es el siguiente:

    Call to a member function have_posts() on a non-object in C:\xampp\htdocs\gerencie\wp-content\themes\magazine_10\sidebar.php on line 115

    La línea 115 es:

    < ?php while ($the_query- >have_posts()) : $the_query- >the_post(); $do_not_duplicate = $post- >ID;? >

    Alguna explicación?

  • Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Mhm, no puedo asegurarte mucho sin ver el resto de tu theme, pero pareciera que estás tratando de acceder a have_posts como si fuera una clase? Probablemente te falta algo de código. Proba con esto:

    Arriba, en archivo donde quieras mostrar los posts, pega esto:

    < ?php
            global $wp_query;
            $categoria = get_the_category();
            $tempQuery = $wp_query

            $catlista = "";
            forEach( $categoria as $catl ) {
                if( $catlista != "" ) { $catlista .= ","; }
                $catlista .= $catl- >cat_ID;
            }

            $nuevaQuery = "posts_per_page=4&amp;cat=" . $catlista;
            query_posts( $nuevaQuery );

            $PostmismaCat = "";

            if (have_posts()) {
                while (have_posts()) {

                    the_post();
                    $PostmismaCat .= '
    <li><a href="'
    . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>

    '

                    ;
                }
            }

            $wp_query = $tempQuery;

            ? >

    Después, en el lugar donde quieras que esté la lista de posts relacionados, pega:

    Más de la categoria < ?php the_category(', ') ? > //o el texto que te guste
    <ul>
                    < ?php echo $PostmismaCat; ? >
                    </ul>

    Así muestra 4 por artículo como en el theme que linkeaste ;), si querés más, cambia el número en

    $nuevaQuery = "posts_per_page=4&amp;cat="

    Probado nomás en el mi theme, y en localhost, decime si te anda.

    Saludos!

    There's no place like 127.0.0.1
  • Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    Gracias. No se si estaré haciendo algo mal pero la línea siguiente me da un error no especificado:

    $catlista .= $catl- >cat_ID;

    Los pos quier mostrarlos en cada post pero como no tengo single debo colocar el código en index.php.

    El código completo de mi index es el siguiente:

    < ?php get_header(); ? >

    < div id="content" >

        < div id="contentleft" >

            < div class="postarea" >

                < ?php include(TEMPLATEPATH . '/includes/breadcrumb.php');? >

                < ?php if (have_posts()) : while (have_posts()) : the_post(); ? >

                < h1 >< ?php the_title(); ? >< /h1 >

                < ?php require(TEMPLATEPATH . '/includes/post-author-block.php'); ? >

                < ?php the_content(__('Read more', 'studiopress'));? >< div class="clear" >< /div >

                < !--
                < ?php trackback_rdf(); ? >
                -- >

                < ?php require(TEMPLATEPATH . '/includes/post-meta-block.php'); ? >

            < /div >

            < ?php if(get_theme_mod('468_ad') == 'Yes') { ? >
                < div class="adblock" >
                    < ?php echo stripslashes (get_theme_mod('468_code')); ? >
                < /div >
            < ?php } else { ? >
            < ?php } ? >

            < div class="postcomments" >

                < ?php comments_template('',true); ? >

            < /div >

            < ?php endwhile; else: ? >

            < ?php require(TEMPLATEPATH . '/includes/post-nav-block.php'); ? >

            < ?php endif; ? >

        < /div >

        < ?php include(TEMPLATEPATH."/sidebar.php");? >

    < /div >

    < ?php get_footer(); ? >

    En qué parte debo colocar el primer código?

    Saludos!

  • Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    < ?php
            global $wp_query;
            $categoria = get_the_category();
            $tempQuery = $wp_query;

            $catlista = "";
            forEach( $categoria as $catl ) {
                if( $catlista != "" ) { $catlista .= ","; }
                $catlista .= $catl- >cat_ID;
            }

            $nuevaQuery = "posts_per_page=4&amp;cat=" . $catlista;
            query_posts( $nuevaQuery );

            $PostmismaCat = "";

            if (have_posts()) {
                while (have_posts()) {

                    the_post();
                    $PostmismaCat .= '
    <li><a href="'
    . get_permalink() . '">' . the_title( "", "", false ) . '</a></li>

    '

                    ;
                }
            }

            $wp_query = $tempQuery; ? >

    < ?php get_header(); ? >

    < div id="content" >

        < div id="contentleft" >

            < div class="postarea" >

                < ?php include(TEMPLATEPATH . '/includes/breadcrumb.php');? >

                < ?php if (have_posts()) : while (have_posts()) : the_post(); ? >

                < h1 >< ?php the_title(); ? >< /h1 >

                < ?php require(TEMPLATEPATH . '/includes/post-author-block.php'); ? >

                < ?php the_content(__('Read more', 'studiopress'));? >< div class="clear" >

    < /div >

                < !--
                < ?php trackback_rdf(); ? >
                -- >

                < ?php require(TEMPLATEPATH . '/includes/post-meta-block.php'); ? >

                Más de la categoria < ?php the_category(', ') ? >
    <ul>
                    < ?php echo $PostmismaCat; ? >
                    </ul>

            < /div >

            < ?php if(get_theme_mod('468_ad') == 'Yes') { ? >
                < div class="adblock" >
                    < ?php echo stripslashes (get_theme_mod('468_code')); ? >
                < /div >
            < ?php } else { ? >
            < ?php } ? >

            < div class="postcomments" >

                < ?php comments_template('',true); ? >

            < /div >

            < ?php endwhile; else: ? >

            < ?php require(TEMPLATEPATH . '/includes/post-nav-block.php'); ? >

            < ?php endif; ? >

        < /div >

        < ?php include(TEMPLATEPATH."/sidebar.php");? >

    < /div >

    < ?php get_footer(); ? >

    Cuando yo lo pongo así funciona joyita, de cualquier manera fijate en lo siguiente:

    la parte que lee:

    $catlista .= $catl- >cat_ID;

    no es así, sino que es:

    $catlista .= $catl->cat_ID;

    con el "->" junto, sino tira error. Lo mismo con todos los "<?php" (y no < ?php ) y "?>" (y no ? >), si te tira error chequea eso.

    Saludos!

    There's no place like 127.0.0.1
  • Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    Ok. Gracias. Ha funcionado.

  • Mno4K

    5.0
    Antiguedad: Dic 2008
    Mensajes: 244

    offline

    Publicado hace 2 años
    #

    Joya, me alegro! Cualquier cosa me decís,

    There's no place like 127.0.0.1
  • Responder

    Debes Identificarte para publicar.

    Foro WordPress » WordPress » Themes y Diseño