Colocar Post Recientes en el archivo 404.php

eswal200

Dseda
Programador
Verificación en dos pasos desactivada
Desde
5 Ago 2015
Mensajes
1.150
Crédito(s)
1
Puntos
68
Hola gente estoy creando un theme para wordpress y quiero colocar en la pagina de error editando el archivo 404.php los 4 últimos post publicado.

encontré este codigo:

<?php wp_get_archives( array(
'type' => 'postbypost',
'limit' => 4,
'format' => 'custom',
'before' => '<span class="my-post-title">',
'after' => '</span>, ' ) ); ?>

pero solo me muestra los titulos, desea se puedan visualizar: Titulo, imagen, categoría

Si saben algún código y post donde expliquen algo parecido se los agradecería mucho :)
 

Japes

Alfa
Verificación en dos pasos desactivada
Desde
29 May 2019
Mensajes
17
Edad
33
Crédito(s)
0
Puntos
20
Busca en google: shortcode recent posts
Tendría que funcionar
 

Khano

Épsilon
Verificación en dos pasos activada
Desde
7 Abr 2019
Mensajes
755
Crédito(s)
0
Puntos
412
Probá poniendo ésta función en tu archivo functions.php (wp-content/themes/<nombre_tema>/functions.php). Recordá hacer un backup antes por las dudas.. lo encontré revisando un poco

Insertar CODE, HTML o PHP:
[/I][INDENT]function getLatestPosts(){
 global $wpdb;
 $result = $wpdb->get_results(“select ID,post_title
 from `$wpdb->posts`
 where post_status = ‘publish’
 order by `post_date` desc
 limit 4”);
 foreach ($result as $topfive) {
 $postid = $topfive->ID;
 $posttitle = $topfive->post_title;
$thumbID = get_post_thumbnail_id($postid);
$imgDestacada = wp_get_attachment_url($thumbID);

if  ($posttitle != “”) { ?><li><img src="<?php echo $imgDestacada; ?>"><a href=”<?php echo  get_permalink($postid); ?>” title=”<?php echo $posttitle  ?>”><?php echo $posttitle ?></a></li><?php } }  ?>

<br>
 </div>
 <?php }

[/INDENT][I]

Y en 404.php

Insertar CODE, HTML o PHP:
<?php getLatestPosts(); ?>
 

eswal200

Dseda
Programador
Verificación en dos pasos desactivada
Desde
5 Ago 2015
Mensajes
1.150
Crédito(s)
1
Puntos
68
Gracias, [MENTION=204953]Khano[/MENTION] ya lo checo

- - - Actualizado - - -

Gracias a todo la solucion fue crear una funcion y un shorcode y todo quede de la siguiente manera, se los comparto por si a alguien le es de utilidad:

en el archivo functions.php

PHP:
function wp_chore_error() {
     $q = new WP_Query(
       array( 'orderby' => 'date', 'posts_per_page' => '4')
     );
    $list ="";
   while($q->have_posts()) : $q->the_post();
   echo '<div class="item">';
   $title=get_the_title();
   if ( has_post_thumbnail() ) {
   echo '<a class="single-image link-icon" href="' . get_permalink() . '">';
   $list .=the_post_thumbnail(array(300,200),array('alt' =>$title));    
   echo '</a>';
   }
  echo '<h6 class="title"><a href="' . get_permalink() . '"><span>'.$title.'</span></a></h6>';
  echo '<div class="entry-body">';
  
  echo '<a class="button default color" href="' . get_permalink() . '">Read More</a>';
  echo '</div>';

   echo '</div>';
  endwhile;

    wp_reset_query();

    return $list ;

    
}
add_action('wp_chore_error', 'add_post_page_error');
en el archivo 404.php

PHP:
<?php wp_chore_error(); ?>
de esa manera obtenemos los 4 ultimos post: imagen - titulo - leer mas
 

Arriba