web-dev-qa-db-fra.com

Utilisez wp_get_recent_posts avec le terme de recherche

J'ai une fonction qui utilise wp_get_recent_posts() J'ai besoin d'utiliser cette même fonction sur ma page de recherche, mais j'ai des problèmes pour ajouter le paramètre de recherche au tableau $args.

Est-ce que quelqu'un sait si cela est possible et si oui, comment le mettre en œuvre?

voici ma fonction

function recent_articles_grid( $atts ) {

    extract( shortcode_atts( array (
        'numberposts'   => 6,
        'offset'        => 0,
        'featured'      => null,
        'trending'      => null,
        'showdate'      => null,
        'category'      => null,
        'showauthor'    => null,
        'init'          => 1,
        'searchterm'    => null
    ), $atts ) );

$args = array(
        'numberposts' => $numberposts,
        'offset' => $offset,
        'category__not_in' => array(391),
        'category' => $category,
        'orderby' => 'post_date',
        'order' => 'DESC',
        'post_type' => 'post',
        'post_status' => 'publish'
    );

    $recent_posts = wp_get_recent_posts( $args, ARRAY_A );

... additional code ...

}
1
Jason

Il suffit simplement de définir l'argument 's' de wp_get_recent_posts() (ou simplement get_posts()) au terme recherché:

$args = array(
    'numberposts' => $numberposts,
    'offset' => $offset,
    'category__not_in' => array(391),
    'category' => $category,
    'orderby' => 'post_date',
    'order' => 'DESC',
    'post_type' => 'post',
    'post_status' => 'publish',
    's' => $searchterm,
);

$recent_posts = wp_get_recent_posts( $args, ARRAY_A );

Mais oui, comme indiqué dans les commentaires, je ne suggérerais pas cette méthode d'affichage des résultats de recherche. Si vous utilisez correctement search.php, la requête/boucle principale contiendra déjà les résultats de la recherche.

Une meilleure question pourrait être de savoir comment obtenir des publications de la requête principale dans votre fonction de présentation. Sinon, vous effectuez inutilement la recherche deux fois et vous allez rencontrer des problèmes de pagination, car vous n'utiliserez pas correctement la hiérarchie des boucles et des modèles.

2
Jacob Peattie