Problemi di paginazione in WordPress

Quando si vuole effettuare una paginazione di una categoria in WordPress, è facile voler anche impostare il numero di articoli da visualizzare per ogni pagina.

Si verifica un problema di “amnesia”: impostando nella pagina un numero di articoli diverso da quello deciso nelle impostazioni generali, esso non viene considerato da WordPress.

Per ovviare a questo inconveniente, bisogna aggiungere nel file functions.php, nella directory del tema utilizzato per il sito, questa funzione (con l’aggiunta del filtro opportuno), sostituendo a ‘cat1’, ‘cat2’, ecc. i nomi delle categorie del nostro sito.

 

function cure_wp_amnesia_on_query_string($query_string){
    if ( !is_admin() ){
        if ( isset( $query_string['category_name'] ) ) {
            switch ($query_string['category_name']) {
                case 'cat1':
                    $query_string['posts_per_page'] = 2;
                    break;
                case 'cat2':
                        $query_string['posts_per_page'] = 2;
                        break;
            }
        }
        
        if ( isset( $query_string['s'] ) ){//case SEARCH
            $query_string['posts_per_page'] = 5;
        }
    }
    return $query_string;
}

add_filter('request', 'cure_wp_amnesia_on_query_string');

Commenti

commenti