Como mudar "As páginas do blog mostram no máximo" via Theme Customizer

78 views
Skip to first unread message

Arsnova Digital

unread,
May 20, 2015, 3:44:00 PM5/20/15
to wordpres...@googlegroups.com
Pessoal,

Estou criando uma seção para personalizar um tema de um cliente. Este tema deve mostrar 2 ou 3 posts na página inicial.

Já consegui configurar a CSS, também preciso mudar o contador de posts por página para 2 ou 3, conforme o selecionado.

Alguém sabe como fazer isso?

Obrigado!
Marco Andrei

Leo Baiano

unread,
May 20, 2015, 3:47:09 PM5/20/15
to wordpres...@googlegroups.com
Não sei se saquei direito o que você quer fazer.... a página vai ter um select para que os visitantes definam quantos posts querem ver ou quem vai definir isso é o admin? Se for o admin porque não usar o padrão do WordPress?

--
Regras do Grupo: http://bit.ly/1lOeYqs
 
Projeto WordPress: http://br.wordpress.org/
Temas: http://wordpress.org/extend/themes/
Plugins: http://wordpress.org/extend/plugins/
Grupo no Facebook: http://www.facebook.com/groups/wordpress.brasil/
---
Você recebeu essa mensagem porque está inscrito no grupo "WordPress Brasil Lista" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para wordpress-bras...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Amplexos,

Leo Baiano
Web Developer

Arsnova Digital

unread,
May 20, 2015, 4:07:08 PM5/20/15
to wordpres...@googlegroups.com
Leo,

Isso está dentro do admin. O usuário seria um admin, que vai definir quantos posts (destaques) aparecem na home.

Eu criei uma seção no "Personalizar" que se chama "Destaques na home". Quando o cara escolhe 2 eu ajeito a home para os destaques cobrirem toda a largura. Quando o cara escolhe 3, eu reduzo o tamanho destes destaques para caber 3 cobrindo a largura.

Eu preciso limitar o posts_per_page para 2 ou 3. Como só podem ter estas duas opções, resolvi criar a opção dentro do Customizer para o cara não explodir o leiaute.

Não sei se me fiz entender. O saite está aqui: http://terranovaweb.com.br/clientes/casadolado.com.br/

Te agradeço a ajuda.

Abração,
Marco Andrei








Leo Baiano

unread,
May 20, 2015, 4:19:43 PM5/20/15
to wordpres...@googlegroups.com
Opa, agora saquei o que você está precisando.

Usando pre_get_posts() para setar a quantidade de posts, no loop principal da home, de acordo com o valor selecionado no Customizer não resolve?

Arsnova Digital

unread,
May 20, 2015, 4:29:14 PM5/20/15
to wordpres...@googlegroups.com
Leo,

Adicionando uma função no hook pre_get_posts? Seria isso?

FUNCTIONS.PHP:

function ajusta_festas_destaque( $query ) {
    if ( $query -> is_home() && $query->is_main_query() ) {
        $query -> set ( 'PARAMETRO QUE NÃO SEI', 'O NUMERO QUE QUERO' );
    }
}

add_action( 'pre_get_posts', 'ajusta_festas_destaque' );


É o caminho?

Obrigado,
Marco

Leo Baiano

unread,
May 20, 2015, 4:30:59 PM5/20/15
to wordpres...@googlegroups.com
Isso mesmo parceiro, o parametro que você não sabe éo posts_per_page mesmo, é o mesmo nome que usamos no WP_Query();

Arsnova Digital

unread,
May 20, 2015, 4:33:17 PM5/20/15
to wordpres...@googlegroups.com
Leo,

Show de bola! Daí substituo O NUMERO QUE QUERO pelo get_theme_mod('festas_destaque'), que é justamente o número de destaques.

Valeu, meu velho.

Abração,
Marco

Leo Baiano

unread,
May 20, 2015, 4:41:15 PM5/20/15
to wordpres...@googlegroups.com
Isso, é o número que vem do customizer.

Arsnova Digital

unread,
May 20, 2015, 4:51:53 PM5/20/15
to wordpres...@googlegroups.com
Pessoal,

Para ficar documentado, este é o código final.

'festas_destaque' é o nome que dei para o parâmetro a ser ajustado no Customizer. Ele recebe 2 ou 3.

Usei uma variável auxiliar $destaques para dar clareza no código e evitar tropeços.

--

function ajusta_contagem_festas_destaque ( $query ) {

    $destaques = get_theme_mod('festas_destaque');

  
    if ( $query -> is_home() && $query->is_main_query() ) {
        $query -> set ( 'posts_per_page', $destaques );
    }
}

add_action( 'pre_get_posts', 'ajusta_contagem_festas_destaque' );

--

É isso.

Valeu, Leo!
m.


Reply all
Reply to author
Forward
0 new messages