Propaganda

como criar widgetsMuitos blogueiros procurarão alto e baixo pelo widget WordPress perfeito que fará exatamente o que eles querem, mas com um pouco de experiência em programação, você pode achar mais fácil escrever seu personalizado ferramenta.

Nesta semana, eu gostaria de mostrar como fazer exatamente isso, e o widget que escreveremos é simples e seleciona uma única postagem aleatória do seu site, puxa a imagem em destaque e a exibe na barra lateral - um widget visual "confira isso" que ajudará os usuários a encontrar mais conteúdo em seu local.

Essa também é uma extensão de uma série contínua, na qual mostro como é fácil personalize seu modelo do WordPress 2 novos plugins legais do Wordpress e compreensão da estrutura do tema do WordpressNesta semana, vou dar uma olhada em uma alternativa superior ao sempre elogiado SEO All-In-One; um plugin que lhe dá o poder de um sistema de publicação Wordpress, mas permite que você produza ... consulte Mais informação .

Você também pode gostar de saber que adicionamos um novo

Categoria de tutoriais do WordPress para MakeUseOf, verifique isso em um arquivo cada vez maior de dicas e guias atualizados sobre a plataforma de blogs favorita do mundo.

Conceitos principais: consultas do WordPress e o loop

Cada página do seu blog consiste em uma consulta ao seu banco de dados de postagens. Dependendo da página que você está visualizando, a consulta será alterada. A página inicial do seu blog, por exemplo, pode usar a consulta "receba as últimas 10 postagens do blog“. Quando você visualiza os arquivos da categoria, a consulta pode mudar para "obtenha as 20 últimas postagens apenas para a categoria fotos de família, ordene os resultados por data de publicação“. Cada consulta retornará um conjunto de resultados e, dependendo do modelo de página que está sendo usado, cada resultado será executado no "loop" principal do modelo.

Na verdade, cada página pode consistir em mais de uma consulta, e você pode até criar suas próprias consultas para adicionar funcionalidade a vários locais do seu modelo. Você pode ver um exemplo disso em uso na parte inferior deste artigo - temos algumas consultas adicionais que são executadas em todas as páginas que visam mostrar artigos relacionados de seu interesse ou artigos que estão tendendo a isso semana.

Para criar nosso widget personalizado, basta criar uma consulta adicional que agarre um número X de postagens aleatórias mais suas imagens e as exiba de alguma forma na barra lateral. Eu já mostrei na semana passada o código para pegue a imagem em destaque Configure seu blog com WordPress: o melhor guiaDeseja iniciar seu próprio blog, mas não sabe como? Veja o WordPress, a plataforma de blog mais poderosa disponível hoje. consulte Mais informação , então precisamos saber como criar um novo widget do WordPress e colocá-lo na barra lateral.

Código básico do widget

Comece criando um novo arquivo .php no seu wp-content / plugins diretório. Você também pode seguir o tutorial off-line e enviá-lo usando a interface do WordPress, mas acho mais fácil escrever à medida que avançamos, caso você precise depurar. Ligue para seu arquivo como quiser, mas eu vou com random-post-widget.php

Cole o seguinte no arquivo e salve. Sinta-se à vontade para alterar a seção na parte superior com o meu nome, mas ainda não ajuste o restante do código. Este é basicamente um widget esqueleto vazio, e você pode ver onde ele diz // O CÓDIGO WIDGET VAI AQUI é onde adicionaremos nossa funcionalidade posteriormente.

php. /* Nome do plugin: Random Post Widget. URI do plug-in: http://jamesbruce.me/ Descrição: o Random Post Widget pega uma postagem aleatória e a miniatura associada a ser exibida na barra lateral. Autor: James Bruce. Versão 1. Autor URI: http://jamesbruce.me/ * / class RandomPostWidget estende WP_Widget. {function RandomPostWidget () {$ widget_ops = array ('classname' => 'RandomPostWidget', 'description' => 'Exibe uma postagem aleatória com miniatura'); $ this-> WP_Widget ('RandomPostWidget', 'Postagem aleatória e miniatura', $ widget_ops); } formulário da função ($ instance) {$ instance = wp_parse_args ((array) $ instance, array ('title' => '')); $ title = $ instance ['title'];

atualização da função php} ($ new_instance, $ old_instance) {$ instance = $ old_instance; $ instance ['title'] = $ new_instance ['title']; return $ instance; } widget da função ($ args, $ instance) {extract ($ args, EXTR_SKIP); echo $ before_widget; $ title = vazio ($ instance ['title'])? '': apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ before_title. $ title. $ after_title;; // O CÓDIGO WIDGET VAI AQUI echo "

Este é o meu novo widget!

"; echo $ after_widget; } } add_action ('widgets_init', create_function ('', 'return register_widget ("RandomPostWidget");'));

Assim, o plug-in não faz muito além de imprimir um título grande com as palavras "Este é o meu novo widget!“.

como criar widgets

No entanto, oferece a opção de alterar o título, o que é essencial para qualquer widget. A adição de outras opções está um pouco além do escopo deste artigo hoje, então, por enquanto, vamos seguir em frente, dando-lhe um propósito real.

escreva seu próprio widget

Uma nova consulta e o loop

Para fazer uma nova consulta no banco de dados do seu blog, você precisa usar o query_posts () funcionar junto com alguns parâmetros e, em seguida, executar a saída usando um loop while. Vamos tentar isso - uma consulta e loop muito básicos para demonstrar. Substitua a linha de código que diz:

com o seguinte:


// O CÓDIGO WIDGET ESTÁ AQUI. query_posts (''); if (have_posts ()): while (have_posts ()): the_post (); o título(); final; fim se; wp_reset_query (); 

Esta é uma consulta absolutamente básica, usando opções padrão e formatação zero da saída. Dependendo de como o seu blog estiver configurado, o padrão provavelmente será pegar as 10 postagens mais recentes - então todo o código acima é gerar o título de cada postagem. É muito feio, mas funciona:

escreva seu próprio widget

Podemos melhorar um pouco imediatamente adicionando alguma formatação HTML à saída com o comando ECO comando e criando um link para a postagem usando get_the_permalink () função:

 query_posts (''); if (have_posts ()): echo "
    • “; while (have_posts ()): the_post (); eco ”
    • ".Get_the_title ()."

“; final; eco ”

“; fim se; wp_reset_query ();

escreva seu próprio widget

Já está parecendo muito melhor. Mas nós queremos apenas um post, escolhido aleatoriamente. Para fazer isso, especificamos alguns parâmetros na consulta:

 query_posts ('posts_per_page = 1 & orderby = rand'); 

Claro, você pode alterá-lo para qualquer número de postagens - na verdade, há uma toda a gama de bits extras que você pode passar para a consulta para restringir, expandir ou alterar a ordem dos resultados, mas vamos continuar com isso por enquanto. Se você atualizar, deverá ver apenas uma postagem aleatória cada vez que atualizar.

Agora, para a miniatura em destaque. Substitua o código por isso, espero que você possa ver onde estamos pegando a miniatura e exibindo-a:


query_posts ('posts_per_page = 1 & orderby = rand'); if (have_posts ()): echo "
    • “; while (have_posts ()): the_post (); eco ”
    • “.Get_the_title (); echo the_post_thumbnail (array (220,200)); eco "

“; final; eco ”

“; fim se; wp_reset_query ();

Você pode ver os resultados finais novamente no blog de desenvolvimento Self Sufficiency Guide, embora eu possa ter mudado as coisas quando você ler isso.

como criar widgets

Conclusão:

Veja como é fácil criar seu próprio widget personalizado que pode fazer exatamente o que você deseja? Mesmo se você não entender 90% do código que lhe mostrei hoje, ainda poderá personalizá-lo um pouco, apenas alterando variáveis ​​ou gerando HTML diferente. Escrevemos um widget inteiro hoje, mas você pode usar facilmente apenas o novo código de consulta e loop em qualquer um dos seus modelos de página.

James é bacharel em Inteligência Artificial e possui certificação CompTIA A + e Network +. Ele é o principal desenvolvedor do MakeUseOf e passa seu tempo livre jogando paintball e jogos de tabuleiro em VR. Ele está construindo PCs desde que era criança.