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:
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 );
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
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