Daniel Marcos Cunha Pereira

Daniel Marcos Cunha Pereira Novatec © Novatec Editora Ltda. 2015. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibid...
4 downloads 0 Views 58KB Size
Daniel Marcos Cunha Pereira

Novatec

© Novatec Editora Ltda. 2015. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates PY20151015 Assistente editorial: Priscila A. Yoshimatsu Revisão gramatical: Patrizia Zagni Editoração eletrônica: Carolina Kuwabata Capa: Carolina Kuwabata ISBN: 978-85-7522-458-8 Histórico de impressões: Outubro/2015

Primeira edição

Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 E-mail: [email protected] Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário

Agradecimentos................................................................................................................... 15 Sobre o autor....................................................................................................................... 16 Prefácio............................................................................................................................... 17 Introdução........................................................................................................................... 19 Capítulo 1 ■ Apresentação da plataforma.............................................................................. 24 1.1 Números do WordPress............................................................................. 24 1.2 Instalação................................................................................................ 25 1.3 Atualização do WordPress.........................................................................28

Capítulo 2 ■ Anatomia do WordPress..................................................................................... 31 2.1 Estrutura de conteúdo...............................................................................31 2.2 Estrutura atual de um template................................................................ 33 2.3 Arquivo wp-config.php.............................................................................38 2.3.1 Chaves de seguranças.........................................................................38 2.4 Configuração de URL...............................................................................40

Capítulo 3 ■ Trabalhando com o conteúdo............................................................................. 42 3.1 Onde trabalhar com conteúdo...................................................................42 3.1.1 Posts..................................................................................................42 3.1.2 Categorias.........................................................................................43 3.1.3 Tags...................................................................................................43 3.1.4 Custom Fields, ou campos personalizados..........................................43 3.1.5 Páginas.............................................................................................44 3.1.6 Images...............................................................................................44 3.1.7 Permalinks........................................................................................44 3.1.8 Shortcodes........................................................................................ 45 7

8

Programando em WordPress

3.1.9 Upload de imagens............................................................................ 45 3.1.10 Menu...............................................................................................46 3.1.11 Feeds................................................................................................ 47

Capítulo 4 ■ Trabalhando com as funções nativas................................................................... 49 4.1 Header.....................................................................................................49 4.1.1 wp_title.............................................................................................49 4.1.2 bloginfo............................................................................................50 4.1.3 wp_head........................................................................................... 53 4.1.4 get_header......................................................................................... 53 4.1.5 get_sidebar........................................................................................54 4.1.6 get_footer()....................................................................................... 55 4.1.7 add_menu_page................................................................................ 55 4.1.8 wp_enqueue_style e wp_register_style............................................... 57

Capítulo 5 ■ Criando um template......................................................................................... 59 5.1 Criando o primeiro loop........................................................................... 59 5.2 Funções de comentários........................................................................... 61 5.3 body_class().............................................................................................63 5.4 get_template_part()..................................................................................64 5.5 Usando templates diferentes em categorias................................................70 5.5.1 Resumindo a forma de criar slug......................................................... 71 5.5.2 Ajudando o usuário a se localizar nas categorias.................................72 5.6 Arquivo front-page.php............................................................................72 5.7 Arquivo home.php................................................................................... 73 5.8 Usando front-page.php e home.php no mesmo template............................ 74 5.9 Criando meta box.................................................................................... 76 5.10 Criando shortcode.................................................................................. 81

Capítulo 6 ■ Categorias no WordPress.................................................................................... 88 6.1 wp_list_categories()..................................................................................88 6.1.1 show_option_all................................................................................89 6.1.2 orderby.............................................................................................89 6.1.3 order.................................................................................................90 6.1.4 style..................................................................................................90 6.1.5 show_count...................................................................................... 91 6.1.6 hide_empty....................................................................................... 91 6.1.7 child_of............................................................................................. 91 6.1.8 feed................................................................................................... 91

Sumário

6.1.9 feed_image........................................................................................92 6.1.10 exclude............................................................................................92 6.1.11 include.............................................................................................92 6.1.12 Hierarchical.....................................................................................93 6.1.13 title_li..............................................................................................93 6.1.14 show_option_none...........................................................................94 6.1.15 number............................................................................................94 6.1.16 echo.................................................................................................94 6.1.17 depth...............................................................................................95 6.1.18 current_category..............................................................................97 6.1.19 get_categories...................................................................................99 6.1.20 Exibindo categorias em um select HTML....................................... 102

Capítulo 7 ■ Tags no WordPress........................................................................................... 104 7.1 Introdução a tags.................................................................................... 104 7.2 get_the_tag_list...................................................................................... 106 7.3 get_the_tags()........................................................................................ 108 7.4 get_tags()............................................................................................... 109 7.4.1 Orderby............................................................................................110 7.4.2 Order...............................................................................................110 7.4.3 hide_empty......................................................................................110 7.4.4 exclude............................................................................................. 111 7.4.5 include............................................................................................. 111 7.4.6 number............................................................................................112 7.4.7 offset................................................................................................112 7.4.8 search..............................................................................................113 7.4.9 Arquivos personalizados de tags........................................................113

Capítulo 8 ■ Páginas do WordPress...................................................................................... 115 8.1 Configurando a exibição de páginas e posts..............................................115 8.2 Páginas com arquivos estáticos e custom pages.........................................116 8.3 wp_list_pages......................................................................................... 119 8.3.1 sort_column..................................................................................... 119 8.3.2 sort_order....................................................................................... 120 8.3.3 exclude............................................................................................ 121 8.3.4 include............................................................................................. 121 8.3.5 depth............................................................................................... 121 8.3.6 child_of........................................................................................... 121 8.3.7 show_date...................................................................................... 122

9

10

Programando em WordPress

8.3.8 date_format.................................................................................... 122 8.3.9 title_li............................................................................................. 122 8.3.10 link_before.................................................................................... 123 8.3.11 link_after....................................................................................... 123 8.3.12 authors.......................................................................................... 123 8.3.13 number..........................................................................................124 8.3.14 offset..............................................................................................124 8.4 get_pages()..............................................................................................124 8.4.1 sort_column.................................................................................... 125 8.4.2 sort_order....................................................................................... 125 8.4.3 exclude........................................................................................... 126 8.4.4 include............................................................................................ 126 8.4.5 child_of.......................................................................................... 126 8.4.6 parent............................................................................................. 127 8.4.7 hierarchical..................................................................................... 127 8.4.8 authors........................................................................................... 128 8.4.9 number........................................................................................... 128 8.4.10 post_type...................................................................................... 129 8.4.11 offset.............................................................................................. 129 8.4.12 post_status.................................................................................... 129

Capítulo 9 ■ Funções condicionais....................................................................................... 132 9.1 Introdução...............................................................................................132 9.1.1 is_home().........................................................................................132 9.1.2 is_front_page()................................................................................ 133 9.2 Condicionais em posts........................................................................... 133 9.2.1 is_single()........................................................................................ 133 9.3 Condicionais em páginas.........................................................................135 9.4 Condicionais em categorias......................................................................135 9.5 Condicionais em tags............................................................................. 136

Capítulo 10 ■ Template multi-idiomas................................................................................. 137 10.1 Arquivos .POT...................................................................................... 146

Capítulo 11 ■ Multissite...................................................................................................... 148 Capítulo 12 ■ Menu pelo painel de controle......................................................................... 153

Sumário

11

Capítulo 13 ■ Taxonomias do WordPress.............................................................................. 159 13.1 Custom Post Type.................................................................................. 160 13.2 Tags personalizadas.............................................................................. 160 13.3 Categorias personalizadas..................................................................... 160 13.4 Conhecendo a sintaxe do código............................................................161 13.5 Criando taxonomia.............................................................................. 162 13.5.1 Tags............................................................................................... 162 13.5.2 Categorias..................................................................................... 165 13.5.3 register_post_type......................................................................... 167

Capítulo 14 ■ Painel de controle.......................................................................................... 173 Capítulo 15 ■ Hierarquia de um template............................................................................ 180 15.1 Autor..................................................................................................... 181 15.2 Categorias............................................................................................ 182 15.3 Histórico de conteúdo (archive)............................................................. 183 15.4 Erro 404............................................................................................... 184 15.5 Front Page............................................................................................ 185 15.6 Páginas-padrão e páginas customizadas (custom pages).......................... 185 15.7 Post-padrão e CPT................................................................................ 186 15.8 Tags...................................................................................................... 187 15.9 Taxonomias.......................................................................................... 188

Capítulo 16 ■ Acesso ao banco de dados.............................................................................. 189 16.1 query_post()......................................................................................... 190 16.2 pre_get_posts....................................................................................... 194 16.2.1 Usando pre_get_posts.................................................................... 195 16.3 WP_QUERY()...................................................................................... 199 16.4 wp_reset_postdata()............................................................................. 202 16.5 Usando parâmetros na WP_Query()...................................................... 202 16.5.1 Parâmetros de autor....................................................................... 203 16.5.2 Parâmetros de categorias................................................................ 204 16.5.3 Parâmetros de tags.........................................................................206 16.5.4 Parâmetros de taxonomias............................................................. 207 16.6 get_posts()............................................................................................214 16.7 get_post()..............................................................................................217

12

Programando em WordPress

16.8 $wpdb..................................................................................................217 16.8.1 Prefixo da tabela SQL......................................................................219 16.8.2 $wpdb->query.............................................................................. 220 16.8.3 $wpdb->get_var.............................................................................221 16.9 $wpdb->get_row()............................................................................... 224 16.10 $wpdb->get_col()............................................................................... 228 16.11 $wpdb->get_results()............................................................................231 16.12 $wpdb->insert().................................................................................. 238 16.13 $wpdb->replace.................................................................................. 242 16.14 $wpdb->update.................................................................................. 243 16.15 $wpdb->delete.................................................................................... 245

Capítulo 17 ■ Widgets......................................................................................................... 247 17.1 Primeiro widget..................................................................................... 247 17.1.1 Estrutura de um widget................................................................... 249 17.2 Segundo widget.................................................................................... 254 17.3 Terceiro widget...................................................................................... 258 17.4 Quarto widget....................................................................................... 265 17.5 get_option............................................................................................ 270 17.6 add_option........................................................................................... 273 17.7 delete_option........................................................................................ 274 17.8 update_option...................................................................................... 274

Capítulo 18 ■ Desenvolvimento de plugins.......................................................................... 275 18.1 Hook: action e filters............................................................................. 278 18.2 apply_filter e do_action........................................................................ 284 18.3 Introdução ao desenvolvimento de plugins............................................ 293 18.3.1 Plugin 1 – Mostrando mensagem no conteúdo...................................... 294 18.3.2 Plugin 2 – Bloqueio de palavras ofensivas............................................ 296 18.3.3 Plugin 3 – Formulário de contato usando shortcode............................ 298 18.3.4 Plugin 4 – FAQ usando shortcode....................................................... 303 18.3.5 Plugin 5 – Campos de tag e description............................................... 309 18.3.6 Plugin 6 – Formulário para cadastro de e-mail......................................315

Capítulo 19 ■ SEO – Search Engine Optimization.................................................................. 334 19.1 Estrutura do SEO.................................................................................. 335 19.1.1 Conteúdo....................................................................................... 336 19.1.2 On Page......................................................................................... 336 19.1.3 Link building................................................................................. 338 19.1.4 Sinais sociais.................................................................................. 339

Sumário

13

19.2 Conteúdo duplicado............................................................................. 340 19.3 Arquitetura do site................................................................................ 347 19.3.1 Profundidade do conteúdo.............................................................. 347 19.3.2 Robots.txt...................................................................................... 352 19.3.3 User-agent..................................................................................... 352 19.3.4 Pesquisa interna............................................................................. 354 19.3.5 Perfomance.................................................................................... 357 19.4 Arquitetura do conteúdo....................................................................... 358 19.5 Ferramentas......................................................................................... 359 19.6 Densidade de keyword...........................................................................361 19.7 On Page................................................................................................ 362 19.8 Plugins SEO......................................................................................... 363