@donutz,
Worden reeds bestaande websites dan ineens een Error of blijft de functie wel nog werken alleen niet meer aangeraden ?
Ik ben toevallig bezig met op een homepage verschillende kolommen met verschillende posts te tonen doe ik het dan niet meer goed op deze manier ?
Kolom #1
<?php query_posts('category_name=featured&posts_per_page=3'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<?php endif; ?>
Kolom #2
<?php query_posts('category_name=books&posts_per_page=8'); ?>
<?php rewind_posts(); ?>
<?php while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile; ?>
Kolom #3
<?php query_posts('category_name=films&posts_per_page=5'); ?>
<?php rewind_posts(); ?>
<?php while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile; ?>
@shmoo, query_posts zal zeker nog een tijdje blijven werken, maar zal (met debug aan) een deprecated notice veroorzaken, e.g. “… is niet meer in gebruik sinds versie …”
Custom queries zoals hierboven tover je het best tevoorschijn met get_posts of wp_query
<ul>
<?php
$blogs = get_posts( array(
'numberposts' => 3,
'category' => 8
) );
foreach( $blogs as $blog ) :
echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
endforeach;
wp_reset_postdata();
?>
</ul>
Thanks ik ga het gelijk even goed doen dat voorkomt later weer wat werk.
Nog een klein vraagje aangezien ik met een locale en online versie werk en ik daardoor niet dezelfde Categorie ID’s heb mag dit ook?
Het lijkt wel gewoon te werken..
<ul>
<?php
$blogs = get_posts( array(
'numberposts' => 3,
'category_name' => 'featured'
) );
foreach( $blogs as $blog ) :
echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
endforeach;
wp_reset_postdata();
?>
</ul>
Zeker, get_posts is eig. gewoon een wrapper voor wp_query, dus je kan in principe alle wp_query args gebruiken met get_posts, voor categorieën: http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
Gaaf, ik moet me binnenkort eens echt wat meer in PHP gaan verdiepen .
Thread starter
d@nny
(@dnny)
Bedankt voor de reacties, ik zal er binnenkort naar kijken na alle drukke feestdagen. Alvast een fijne jaar wisseling 😉
Thread starter
d@nny
(@dnny)
Waar of hoe moet ik mijn paginanummering aangeven als ik deze code gebruikt?
<ul>
<?php
$blogs = get_posts( array(
'numberposts' => 3,
'category' => 8
) );
foreach( $blogs as $blog ) :
echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
endforeach;
wp_reset_postdata();
?>
</ul>
Je kunt aan get_posts een extra argument meegeven:
‘paged’ => $paged
Bovenaan denk ik dat je nog even
global $paged;
moet opgeven. Volgens mij is het een WordPress variabele.
Ik denk dat je beter met wp_query
zou werken:
<ul>
<?php
$blogs = new WP_Query( array(
'category' => 8,
'posts_per_page' => 10,
'paged' => $paged
) );
while ( $blogs->have_posts() ) : $blogs->the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
?>
</ul>
Thread starter
d@nny
(@dnny)
Oke dank, ik heb nu een WP_Query gebruikt maar ik krijg de pagina nummering niet echt aan de praat.
Ik wil graag een pagina nummering zoals: << 1 2 3 4 >>
Dus zet ik dit direct onder mijn WP-Query waar ik wil dat het komt te staan. Wat doe ik nog fout…
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'prev_text' => '«',
'next_text' => '»',
'total' => $wp_query->max_num_pages
) );
?>
Om het makkelijk te maken, installeer de WP-PageNavi plugin en gebruik volgende code:
<?php wp_pagenavi( array(
'query' =>$blogs
) ); ?>