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

  • Emails sturen in WordPress

    Voor een eenvoudig contactformulier kan ja het beste een plugin gebruiken. Contact form 7 bijvoorbeeld. Maar soms wil je wat meer maatwerk: een met een cronjob gegenereerde email (bijvoorbeeld elke...
  • Encrypted file upload en download in WordPress

    Een bestand wordt in WordPress standaard geupload in de media library, en zijn vrij toegankelijk, zolang je het url maar hebt. Als je gebruikers bestanden willen uploaden met gevoelige informatie,...
  • vorige volgende post bij een custom post type

    In de single.php, page.php of singular.php van een custom post type kreeg ik het niet voor elkaar om een simpele “vorige”, “volgende” post link toe te voegen. de previous_post_link() van...
  • Cross site authenticatie voorkomen voor gebruikers op WordPress multisite

    Ik ben op dit moment bezig met een applicatie die deels werkt met het authenticeren van gebruikers op basis van het domein waarmee ze inloggen: verschillende gebruikers kunnen bij een...

Laat een reactie achter