web-dev-qa-db-fra.com

Afficher les pièces jointes, les publications et les pages dans le widget de commentaires récents

Le code suivant (ancien post est ici et son auteur est diggy ) est utile, mais j'aimerais afficher un post et une page sur le widget de commentaires récents, pas seulement des pièces jointes.

function wpse80087_widget_comments_args( $args )
{
    $args = array( 'number' => 5, 'post_type' => 'attachment', 'status' => 'approve', 'post_status' => 'inherit' );
    return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );

C'est possible?


SOLUTION:

Merci à Pieter Goosen et à Birgire .

Première étape:

Plugin

Deuxième étape:

function.php

function wpse80087_widget_comments_args( $args ) {
    $args = array( 
       'number' => 9, 
       'post_type' => array('attachment', 'post', 'page'),
    );
    return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );
1
user3720387

Il semble que vous utilisiez déjà une fonction personnalisée trouvée sur ce site. Vous devriez créditer l'auteur original de ce code.

Le filtre widget_comments_args a été introduit dans Wordpress3.4. Ce filtre est mal documenté. Ce filtre utilise get_comments() , vous pouvez donc également utiliser les mêmes paramètres. Voici le filtre dans wp-includes/default-widgets.php # L847

847                 /**
848                  * Filter the arguments for the Recent Comments widget.
849                  *
850                  * @since 3.4.0
851                  *
852                  * @see get_comments()
853                  *
854                  * @param array $comment_args An array of arguments used to retrieve the recent comments.
855                  */
856                 $comments = get_comments( apply_filters( 'widget_comments_args', array(
857                         'number'      => $number,
858                         'status'      => 'approve',
859                         'post_status' => 'publish'
860                 ) ) );

Il y a cependant un problème dans get_comments() car il n'accepte qu'un type de publication, pas un tableau ou une chaîne, ce qui est en fait assez amusant. Il y a loin autour de cela.

Un des membres du site @ birgire a écrit un plugin appelé wp-comments-from-mulitple-post -types pour ajouter la possibilité à get_comments et WP_Comment_Query() d’accepter plusieurs types de publication. Vous pouvez télécharger son plugin ici

Après l'installation, vous pouvez maintenant utiliser votre code comme ceci

function wpse80087_widget_comments_args( $args ) {
    $args = array( 
       'number' => 5, 
       'post_type' => array('attachment', 'post',' page'),
     );
    return $args;
}
add_filter( 'widget_comments_args', 'wpse80087_widget_comments_args', 10, 1 );

MODIFIER

D'après les commentaires du PO, il semble que status ou post_status ne fonctionne pas et ne renvoie qu'un type de message. Lorsque ces paramètres sont supprimés, tout fonctionne comme prévu. Voir le code mis à jour ci-dessus

0
Pieter Goosen

Utilisez widget_posts_args pour modifier les arguments dans les fonctions get_comments de ce widget par défaut.

Quelque chose comme ça:

function wpsites_widget_comments_args( $args ) {
$args = array( 
'post_type'   => array( 'attachment', 'post', 'page'),
'number'      => $number,
'status'      => 'approve',
'post_status' => 'publish'  );

return $args;
}
add_filter( 'widget_comments_args', 'wpsites_widget_comments_args', 10, 1 );

Vous pouvez utiliser n'importe lequel des paramètres get_comments , sinon vous pouvez copier le code for the recent comments widget à partir de WordPress> wp-includes> default-widgets. fichier php et remplacez la fonction get_comments par WP_Query pour créer un widget de commentaires récents personnalisé dans votre thème ou plugin enfant

0
Brad Dalton