Une option dans les paramètres d’administrateur vous permet de définir le nombre de commentaires à répertorier avant de créer une nouvelle page pour les suivants. J'aimerais avoir le même nombre de commentaires pour tous mes articles, à moins qu'il n'appartienne à une catégorie spécifique (pour laquelle je souhaite définir un nombre différent de commentaires avant la pagination).
Comment puis je faire ça?
Celles-ci comportent plusieurs composants: quelle option elle-même contient et comment sa valeur est stockée et réutilisée par divers éléments de code core.
Je ne suis pas sûr que ce soit parfait, mais ma réponse rapide serait:
new Adjust_Comments_Per_Page( 10, 'years', 'category' );
class Adjust_Comments_Per_Page {
private $amount;
private $term;
private $taxonomy;
/**
* @param int $amount
* @param string $term
* @param string $taxonomy
*/
function __construct( $amount, $term, $taxonomy ) {
$this->amount = $amount;
$this->term = $term;
$this->taxonomy = $taxonomy;
add_action( 'template_redirect', array( $this, 'template_redirect' ) );
}
function template_redirect() {
global $wp_query;
if ( is_single() && has_term( $this->term, $this->taxonomy ) ) {
$wp_query->set( 'comments_per_page', $this->amount );
add_filter( 'pre_option_comments_per_page', array( $this, 'pre_option_comments_per_page' ) );
}
}
/**
* @return int
*/
function pre_option_comments_per_page() {
return $this->amount;
}
}