J'essaie de créer une boucle pour afficher le titre et l'extrait de chaque article de blog sur une page qui n'est pas ma page d'index. Le site de démonstration en cours est ici: http://thewestharbour.com/mypakage/
Sur la page de nouvelles, je dois afficher les 3 derniers articles du blog. Changer simplement les paramètres ne fonctionnera pas et chaque boucle que j'ai essayée ne fonctionnera pas non plus. J'ai également essayé de créer un modèle séparé et de l'attribuer à la page d'informations, mais sans succès.
Merci Wade
Vous pouvez modifier votre modèle de publication (généralement index.php, mais cela dépend de votre thème) pour:
Le code suivant interrogera la base de données et renverra une chaîne contenant les 5 dernières publications avec des extraits. Notez que $before
, $after
, $before_excerpt
, $after_excerpt
, ce ne sont que des wrappers pour que le contenu soit plus joli, vous pouvez les envoyer comme paramètre à la fonction, mais par souci de simplicité, je les ai codés en dur.
function get_posts()
{
global $wpdb;
$post_count = 5;
$before = '<h3>'; // this will be rendered before the post content
$after = '<br />'; // this will be rendered after the post content
$before_excerpt = '</h3><p>'; // this will be rendered before the post excerpt
$after_excerpt = '</p>'; // this will be rendered after the post excerpt
$request =
"
select ID,
post_date,
post_title,
post_excerpt
from $wpdb->posts p inner join
$wpdb->term_relationships r on r.object_id = p.ID inner join
$wpdb->terms t on t.term_id = r.term_taxonomy_id
where post_status = 'publish'
AND
post_password = ''
AND
post_type = 'post'
GROUP BY
ID,
post_date,
post_title,
post_excerpt
ORDER BY
post_date DESC
LIMIT 0, $post_count
";
$posts = $wpdb->get_results($request);
$output = '';
if ($posts)
{
foreach ($posts as $post)
{
$post_title = $post->post_title;
$permalink = get_permalink($post->ID);
$output .= $before;
$output .= '<a href="' . esc_url($permalink) . '" rel="bookmark" title="Permanent Link: ' . esc_attr($post_title) . '">' . esc_html($post_title) . '</a>';
$post_excerpt = esc_html($post->post_excerpt);
$output .= $before_excerpt . $post_excerpt . $after_excerpt;
$output .= $after;
}
}
return $output;
}