List Post Content Type

De Wiki.

Général

Comment lister les content type, ou faire des requêtes pour récupérer des contenus dans Wordpress?

<?php
$Q = new GetPostsQuery();
$args = array();
$args['post_type'] = 'article';
$args['post_status'] = 'publish';
$args['orderby'] = 'menu_order';
$args['order'] = 'ASC';

$results = $Q->get_posts($args);

foreach ($results as $r):
?>
        <a href="<?php print $r['permalink']; ?>" rel="bookmark"><?php print $r['post_title']; ?></a> <br />
<?php
endforeach;
?>

Manipuler des dates

Faire une requête avec des dates :

<?php
$Q = new GetPostsQuery();
$args = array();
$args['post_type'] = 'page';
$args['post_date']['>'] = '2005-01-30';
$args['order'] = 'ASC';

$results = $Q->get_posts($args);

foreach ($results as $r):
    // print stuff here
endforeach;
?>

Ou

<?php
$Q = new GetPostsQuery();
$args = array();
$args['post_type'] = 'page';
$args['date_column'] = 'post_date';
$args['date_min'] = '2007-03-01';
$args['date_max'] = '2007-03-31';
$args['order'] = 'ASC';

$results = $Q->get_posts($args);

foreach ($results as $r):
    // print stuff here
endforeach;
?>

On peut également faire des requêtes avec des début de dates :

<?php
$Q = new GetPostsQuery();
$args = array();
$args['post_type'] = 'my_post_type';
$args['my_date']['starts_with'] = '2007-';
$results = $Q->get_posts($args);

foreach ($results as $r):
    // print stuff here
endforeach;
?>

Faire une recherche d'un terme

On peut faire une recherche d'un terme sur plusieurs colonne :

$Q = new GetPostsQuery();
$args = array();
$args['search_columns'] =  array('post_title', 'post_content');
$args['search_term'] = 'wordpress';
$results = $Q->get_posts($args);

foreach ($results as $r) {
    // print stuff here
}

Ou alors :

$Q = new GetPostsQuery();
$args = array();
$args['search_columns'] =  array('post_title');
$args['search_term'] = 'wordpress';
$args['match_rule'] = 'starts_with';
$results = $Q->get_posts($args);

foreach ($results as $r) {
    // print stuff here
}

Attention : ne pas confondre get_post (pour récupérer les infos d'un post particulier) et get_posts (pour notre requête)

Pour plus d'informations : https://code.google.com/p/wordpress-custom-content-type-manager/wiki/get_posts