Pregunta

de acuerdo con Pagination con bucle personalizado. Utilizo el bucle personalizado para el juego Flash. Para hacer una paginación en la página con publicaciones de una categoría (MyDomain/Category/CategoryName) Usé:

add_action( 'pre_get_posts', 'wpse5477_pre_get_posts' );
function wpse5477_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        $wp_query->set( 'post_type', 'game' );
        $wp_query->set( 'posts_per_page', 9 );
    }
}

Tengo la sección en la página principal de mi sitio, donde se muestra tres juegos de cada categoría. Pero de acuerdo con el código anterior, no puedo mostrar solo 3 juegos, incluso si determino en matriz ('post_per_page', 3) o smth como este, porque este número ya se ha determinado en $ WP-QUERY. ¿Cómo podría matar a dos pájaros de un solo piedra? Gracias.

¿Fue útil?

Solución

Puede verificar la existencia de una variable, para que no lo sobrescriba:

add_action( 'pre_get_posts', 'wpse7262_pre_get_posts' );
function wpse7262_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        if ( ! array_key_exists( 'post_type', $wp_query->query_vars ) ) {
            $wp_query->set( 'post_type', 'game' );
        }
        if ( ! array_key_exists( 'posts_per_page', $wp_query->query_vars ) ) {
            $wp_query->set( 'posts_per_page', 9 );
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
scroll top