Code snippets

Een enkele sticky post tonen

Sticky posts zijn handig als je bijvoorbeeld op je homepage één post wilt tonen die blijft “plakken”, dus niet alleen de meest recente, maar een post of artikel die daar langere tijd moet blijven, ook al komen er nieuwere artikelen bij.

Je kan dit instellen bij het onderdeel “zichtbaarheid” van een post. Als je dit aanklikt, krijgt de post de eigenschap “sticky”.

We willen maar 1 post:

'posts_per_page' => 1,

Het is natuurlijk wel leuk als er ook iets komt te staan als er geen sticky posts zijn. Gewoon filteren op sticky posts gaat dan niet werken: dan zou je 0 resultaten kunnen krijgen.

Dus we vragen de sticky posts op, en als er wat in zit geven we dit mee aan de argumenten array:

$sticky = get_option('sticky_posts');
if ($sticky) $args['post__in'] = $sticky;

Je moet wel een kleine toevoeging doen die je misschien niet zou verwachten:  ignore_sticky_posts aan zetten. Doe je dat niet, dan krijg je alle sticky posts terug. Terwijl je (in dit geval) één resultaat wilt.

'ignore_sticky_posts' => 1,

Het eindresultaat wordt dan:

$args = array(
  'post_type' => 'post',
  'ignore_sticky_posts' => 1,
  'posts_per_page' => 1,
  'orderby' => 'date',
  'order' => 'desc');

$sticky = get_option('sticky_posts');
if ($sticky) $args['post__in'] = $sticky;
$loop = new WP_Query( $args );?>

 <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <a href="<?php the_permalink(); ?>">
    <h3><?php the_title(); ?></h3>
    <p><?php the_content()?></p>
 </a>

 <?php endwhile; wp_reset_query(); ?>

Related Articles

Laat een reactie achter