PROBLEMA AL MOSTRAR POSTS PERSONALIZADOS POR AUTOR

Inicio Foros WordPress Programación PROBLEMA AL MOSTRAR POSTS PERSONALIZADOS POR AUTOR

Este debate contiene 8 respuestas, tiene 2 mensajes y lo actualizó  imported_mediastudio hace 6 años, 10 meses.

  • Autor
    Publicaciones
  • #23553

    <p>Hola tengo problemas para mostrar los custom post types o posts personalizados escritos por autor, solo me muestra los post normales escritos por cada autor, el código que estoy usando es el siguiente:</p>
    <pre><code>&lt;!–POSTS DE AUTOR–&gt;
    &lt;div id=&quot;col-der-bio-autor&quot;class=&quot;esquinas_redondeadas sombras&quot;&gt;
    &lt;h1 class=&quot;titulos-bio-autores&quot;&gt;
    &lt;?php echo count_user_posts($curauth-&gt;ID); ?&gt; posts publicados&lt;/h1&gt;
    &lt;!–NÚMERO DE POSTS DE AUTOR–&gt;
    &lt;?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?&gt;
    &lt;?php static $count = 0;
    if ($count == &quot;30&quot;) // Number of posts to display
    { break; }
    else { ?&gt;
    &lt;!–ARCHIVOS POSTS AUTOR–&gt;
    &lt;div id=&quot;lista-archivos&quot;&gt;
    &lt;!–FECHA DEL POST–&gt;
    &lt;div class=&quot;fecha-archivos&quot;&gt;&lt;?php the_time(&#39;j&#39;); ?&gt; | &lt;?php the_time(&#39;M&#39;); ?&gt; ›&lt;/div&gt;
    &lt;!–LINK DEL POST–&gt;
    &lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot;&gt;&lt;?php the_title() ?&gt;&lt;/a&gt;
    &lt;/div&gt;
    &lt;?php $count++; } ?&gt;
    &lt;?php endwhile; else: ?&gt;
    &lt;p&gt;No hay publicaciones de &lt;?php echo $curauth-&gt;display_name; ?&gt; aún. &lt;/p&gt;
    &lt;?php endif; ?&gt;
    &lt;/div&gt;</code></pre>
    <p>Se agradece la ayuda desde ya !
    </p>

  • #58573

    LGrusin
    Miembro

    Tienes que modificar la consulta, antes de if (have_posts()) Depende de lo que quieras hacer. Si quieres todos los posts incluído el Custom Post Type, añade:

    Siendo “juegos” el Custom Post Type

    Si quieres un determinado Custom Post Type

    Siendo juegos el Custom Post Type

    Hay más posibilidades…

    Un saludo

  • #58579

    Hola LGrusin gracias por tu ayuda, siguiendo en internet lo que me dices encontré este tutorial que me ayudo a lograr lo que quería: http://wpengineer.com/2249/wordpress-custom-post-types-get-into-the-loop/

    Dejando el código de esta manera:

    Ahora solo tengo un problema que es con la numeración de post por autor solo me muestra el numero de post normales:
    <?php echo count_user_posts($curauth->ID); ?> posts publicados</h1>

  • #58582

    LGrusin
    Miembro

    count_user_posts no funciona con los Custom Post Type. En el [url=http://codex.wordpress.org/Function_Reference/count_user_posts#Adding_post_type_support]Codex[/url] tienes la solución.

    Un saludo

  • #58652

    LGrusin no logro dar con una solución con el link que me diste, me da error con el código de la pagina, sigo sin poder contar los post personalizados del autor x.

    Aparte ahora tengo otro problema, necesito listar a los autores, pero solo muestra autores con post normales, pero los autores que han escrito post personalizados no aparecen, el código que utilizo es este:

    La verdad es que me cuesta bastante entender php, y esto ya me ha superado, help.

  • #58664

    LGrusin
    Miembro

    A ver, se trata de que sustituyas la función que viene con WordPress por esa. Es decir, usa
    count_user_posts_by_type
    en vez de
    count_user_posts

    Para ello tienes que añadir la función al archivo functions.php de tu theme.

    Para llamarla pones:

    La primera parte de ese código no la he probado, si hay problemas me dices.

    La función get_users_of_blog está obsoleta debes usar wp_list_authors, get_users o similares. Deja que lo mire y te digo.

    Por cierto, todo esto, ¿En qué archivo lo estás poniendo? ¿Tienes muchos Custom Posts Types? Lo digo porque te puedes ahorrar bastante código o hacerlo más fácil.

    Un saludo

  • #58670

    Hola LGrusin, bueno de partida no tenia idea que el código iba en function.php, he pegado la primera parte en functions.php y me da error. La segunda parte del código lo estoy pegando en el archivo author.php

    Para el segundo problema que era listar a los autores con posts personalizados escritos, estoy ocupando una page-nombre.php y lo logre con este código:

    Y funciona, pero la verdad me gustaría ocupar la programación correcta, siempre quedo con esa duda y si a futuro van haber problemas con la base de datos si el sitio si crece.

    Bueno tengo tres custom post types en el blog que estoy haciendo, en un momento pensé en desistir de ocupar los post personalizados, pero para la gente que va a escribir en el blog se les hará mucho más fácil saber donde postear.

  • #58672

    LGrusin
    Miembro

    Hay un error en el código anterior, lo copie tal cual estaba del codex (ni del codex se puede uno fiar… ). El código correcto es el siguiente:

    Esto hay que colocarlo en el archivo functions.php del theme.

    La llamada se efectua desde el archivo author.php

    Si no se proporciona $post_type cuenta los posts normales. En tu caso el valor de $post_type debe ser ‘post’, ‘cultura’ o ‘entretencion’

    La función show_authors puedes ponerla en el archivo functions.php también, así está todo más ordenado.

    Un saludo

  • #58700

    LGrusin gracias por tu ayuda, ahora si esta funcionando todo y ya puse los códigos que tienen que ir en functions.php

    Que tengas un buen año nuevo.

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest