Anda di halaman 1dari 13

Brian Messenlehner

Jason Coleman

Novatec

Authorized Portuguese translation of the English edition of Building Web Apps with Wordpress, ISBN
9781449364076 2014 Brian Messenlehner, Jason Coleman. This translation is published and sold
by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same.
Traduo em portugus autorizada da edio em ingls da obra Building Web Apps with Wordpress, ISBN
9781449364076 2014 Brian Messenlehner, Jason Coleman Esta traduo publicada e vendida com
a permisso da O'Reilly Media, Inc., detentora de todos os direitos para publicao e venda desta obra.
Novatec Editora Ltda. 2014.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta
obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: Rubens Prates
Traduo: Lcia A. Kinoshita
Reviso gramatical: Marta Almeida de S
Editorao eletrnica: Carolina Kuwabata
ISBN: 978-85-7522-377-2 IG20141008
Histrico de impresses:
Outubro/2014

Primeira edio

Novatec Editora Ltda.


Rua Lus Antnio dos Santos 110
02460-000 So Paulo, SP Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec

Sumrio

Prefcio..................................................................................................................................17
Apresentao..........................................................................................................................23
Captulo 1 Criando aplicaes web com o WordPress..............................................................24
O que um site?..................................................................................................... 24
O que uma aplicao?........................................................................................... 24
O que uma aplicao web?.................................................................................... 25
Caractersticas de uma aplicao web................................................................. 25
Por que usar o WordPress?....................................................................................... 27
Voc j est usando o WordPress........................................................................ 27
fcil fazer gerenciamento de contedo com o WordPress................................... 28
O gerenciamento de usurios simples e seguro com o WordPress....................... 28
Plugins.............................................................................................................. 29
Flexibilidade importante................................................................................. 29
Atualizaes de segurana frequentes................................................................. 30
Custo................................................................................................................ 30
Aplicao .NET..................................................................................................31
Aplicao WordPress...........................................................................................31
Respostas a algumas crticas comuns ao WordPress............................................. 32
Quando no usar o WordPress................................................................................. 35
Voc planeja cobrar uma licena ou vender a tecnologia de seu site...................... 35
H outra plataforma que far voc chegar l mais rapidamente.......................... 35
A flexibilidade NO importante para voc....................................................... 35
Sua aplicao deve ser realmente de tempo real................................................... 36
O WordPress como um framework de aplicao....................................................... 37
WordPress versus frameworks MVC................................................................... 37
A anatomia de uma aplicao WordPress.................................................................. 40
O que o SchoolPress?.......................................................................................41
O SchoolPress executa em uma rede WordPress Multisite.....................................41
O modelo de negcios do SchoolPress.................................................................41
Nveis de adeso e funes de usurios............................................................... 42
As classes so grupos BuddyPress....................................................................... 42
5

Criando Aplicaes Web com WordPress


As lies de casa so um tipo de post personalizado............................................ 43
As submisses so um (sub) CPT das lies de casa............................................ 43
Os semestres so uma taxonomia do CPT classe................................................. 43
Os departamentos so uma taxonomia do CPT classe......................................... 43
O SchoolPress tem um plugin personalizado principal........................................ 44
O SchoolPress usa outros plugins personalizados................................................ 45
O SchoolPress usa o framework de temas StartBox.............................................. 45

Captulo 2 Bsico do WordPress.............................................................................................46


A estrutura de diretrios do WordPress.................................................................... 47
Diretrio-raiz.................................................................................................... 47
/wp-admin........................................................................................................ 47
/wp-includes...................................................................................................... 47
/wp-content....................................................................................................... 47
Estrutura de banco de dados do WordPress.............................................................. 48
wp_options....................................................................................................... 49
Funes que se encontram em /wp-includes/option.php...................................... 49
wp_users............................................................................................................52
Funes que se encontram em /wp-includes/....................................................52
wp_usermeta..................................................................................................... 56
wp_posts............................................................................................................61
Funes que se encontram em /wp-includes/post.php......................................... 62
wp_postmeta..................................................................................................... 65
Funes que se encontram em /wp-includes/post.php......................................... 66
wp_comments................................................................................................... 70
Funes que se encontram em /wp-includes/comment.php................................. 70
Funes que se encontram em /wp-includes/comment.php................................. 76
wp_links........................................................................................................... 79
wp_terms.......................................................................................................... 80
Funes que se encontram em /wp-includes/taxonomy.php................................. 80
wp_term_taxonomy........................................................................................... 83
Funes que se encontram em /wp-includes/taxonomy.php................................. 83
wp_term_relationships...................................................................................... 84
Estendendo o WordPress......................................................................................... 86

Captulo 3 Tirando proveito dos plugins do WordPress...........................................................87


A licena GPLv2...................................................................................................... 88
Instalando plugins WordPress.................................................................................. 89
Criando seu prprio plugin..................................................................................... 90
Estrutura de arquivos do plugin de uma aplicao....................................................91
/adminpages/..................................................................................................... 92
/classes/............................................................................................................. 92

Sumrio

/css/.................................................................................................................. 92
/js/ 94
/images/............................................................................................................ 95
/includes/.......................................................................................................... 95
/includes/lib/..................................................................................................... 95
/pages/.............................................................................................................. 95
/services/........................................................................................................... 97
/scheduled/....................................................................................................... 97
/schoolpress.php................................................................................................ 97
Add-ons para plugins existentes............................................................................... 98
Casos de uso e exemplos......................................................................................... 98
O lao do WordPress.......................................................................................... 99
Variveis globais do WordPress..........................................................................100
Hooks de aes..................................................................................................111
Filtros............................................................................................................... 112
Plugins gratuitos.................................................................................................... 113
All in One SEO Pack......................................................................................... 113
BadgeOS.......................................................................................................... 114
Custom Post Type UI........................................................................................ 114
Posts 2 Posts..................................................................................................... 114
Members.......................................................................................................... 115
W3 Total Cache................................................................................................ 116
Plugins premium................................................................................................... 116
Gravity Forms.................................................................................................. 116
Backup Buddy.................................................................................................. 116
WP All Import.................................................................................................. 117
Plugins de comunidade.......................................................................................... 117
BuddyPress....................................................................................................... 117
Tabelas do banco de dados................................................................................ 119

Captulo 4 Temas................................................................................................................131
Temas versus plugins.............................................................................................. 131
Quando desenvolver aplicaes......................................................................... 131
Quando desenvolver plugins.............................................................................133
Quando desenvolver temas................................................................................133
A hierarquia de templates.......................................................................................134
Templates de pgina...............................................................................................136
Exemplo de template de pgina.........................................................................136
Usando hooks para copiar templates..................................................................139
Quando usar um template de tema.................................................................... 141
Funes WP relacionadas a temas........................................................................... 141
Usando locate_template em seus plugins...........................................................143
Style.css.................................................................................................................144

Criando Aplicaes Web com WordPress


Atribuindo verses aos arquivos CSS de seu tema............................................... 145
Functions.php........................................................................................................ 147
Temas e tipos de post personalizados...................................................................... 147
Frameworks populares de temas ............................................................................148
Frameworks de temas para o WordPress.............................................................148
Frameworks de temas no exclusivos do WordPress............................................150
Criando um tema-filho para o StartBox..................................................................150
Incluindo o Bootstrap no tema de sua aplicao...................................................... 151
Menus...................................................................................................................153
Menus de navegao.........................................................................................153
Menus dinmicos.............................................................................................154
Design responsivo..................................................................................................155
Deteco de dispositivo e de display no CSS.......................................................155
Deteco de dispositivos e de recursos no JavaScript...........................................157
Deteco de dispositivos no PHP.......................................................................160
Observao final sobre deteco de navegadores.................................................164
Atribuindo verses aos arquivos CSS e JS................................................................165

Captulo 5 Tipos de post personalizados, metadados de post e taxonomias...........................167


Tipos de post default e tipos de post personalizados................................................167
Pgina (page)....................................................................................................167
Post..................................................................................................................167
Anexo (attachment)..........................................................................................168
Revises (revisions)...........................................................................................168
Item de menu de navegao (nav menu item).....................................................168
Definindo e registrando tipos de post personalizados..............................................168
register_post_type( $post_type, $args );.............................................................169
O que uma taxonomia e como devo us-la?..........................................................179
Taxonomias versus metadados de post...............................................................179
Criando taxonomias personalizadas..................................................................182
register_taxonomy_for_object_type( $taxonomy, $object_type ).........................186
Usando tipos de post personalizados e taxonomias em seus temas e plugins............187
Os arquivos de template Archive e Single do tema..............................................187
Os bons e velhos WP_Query e get_posts().........................................................188
Metadados com CPTs.............................................................................................192
add_meta_box( $id, $title, $callback, $screen, $context, $priority, $callback_args )...
192
Classes wrapper personalizadas para CPTs..............................................................195
Estender WP_Post versus encapsul-la...............................................................198
Por que usar classes wrapper?............................................................................198
Mantenha seus CPTs e as taxonomias juntos......................................................199
Mantenha tudo na classe wrapper.................................................................... 200
As classes wrapper so mais legveis...................................................................202

Sumrio

Captulo 6 Usurios, funes e capacidades.........................................................................204


Obtendo dados de usurio.................................................................................... 205
Adicionar, atualizar e apagar usurios.................................................................... 208
Hooks e filtros........................................................................................................211
O que so funes e capacidades?........................................................................... 212
Verificando a funo e as capacidades de um usurio......................................... 213
Criando funes e capacidades personalizadas................................................... 215
Estendendo a classe WP_User ............................................................................... 217
Adicionando campos para inscrio e perfil............................................................ 219
Personalizando a tabela de usurios no painel.........................................................225
Plugins..................................................................................................................227
Theme My Login..............................................................................................227
Hide Admin Bar from Non-Admins...................................................................227
Paid Memberships Pro..................................................................................... 228
PMPro Register Helper..................................................................................... 228
Members......................................................................................................... 229

Captulo 7 Outras APIs, objetos e funes auxiliares do WordPress........................................230


API Shortcode........................................................................................................230
Atributos de shortcode...................................................................................... 231
Shortcodes aninhados.......................................................................................232
Removendo shortcodes.....................................................................................233
Outras funes teis relacionadas a shortcodes..................................................234
API Widgets...........................................................................................................234
Antes de adicionar o seu prprio widget............................................................235
Adicionando widgets........................................................................................236
Definindo uma rea de widget...........................................................................240
Inserindo um widget fora de uma barra lateral dinmica....................................243
API Dashboard Widgets........................................................................................ 244
Removendo widgets do painel.......................................................................... 244
Adicionando seu prprio widget de painel........................................................ 246
API Settings...........................................................................................................249
Voc realmente precisa de uma pgina de configuraes?....................................250
possvel usar um hook ou um filtro como alternativa?...................................... 251
Utilize padres ao adicionar configuraes.........................................................252
Ignore padres ao adicionar configuraes.........................................................253
API Rewrite...........................................................................................................254
Adicionando regras de reescrita.........................................................................255
Limpando as regras de reescrita........................................................................ 256
Outras funes de reescrita...............................................................................257
WP-Cron.............................................................................................................. 260
Adicionando intervalos de tempo personalizados............................................... 261

10

Criando Aplicaes Web com WordPress


Agendando eventos nicos................................................................................262
Disparando cron jobs a partir do servidor......................................................... 263
Usando somente crons do servidor................................................................... 264
WP Mail............................................................................................................... 265
Enviando emails mais elegantes com o WordPress............................................. 266
API File Header..................................................................................................... 268
Adicionando cabealhos aos seus prprios arquivos...........................................270
Adicionando novos cabealhos a plugins e temas............................................... 271

Captulo 8 Segurana no WordPress.....................................................................................273


Por que a segurana importante...........................................................................273
Bsico sobre a segurana........................................................................................274
Faa atualizaes com frequncia......................................................................274
No utilize o nome de usurio admin..............................................................274
Utilize uma senha robusta.................................................................................275
Exemplos de senhas ruins.................................................................................275
Exemplos de senhas boas..................................................................................276
Tornando sua instalao do WordPress mais robusta...............................................276
No permita que os administradores editem plugins ou temas...........................276
Altere o prefixo default das tabelas do banco de dados...................................... 277
Mova wp-config.php para outro local................................................................278
Oculte mensagens de erro de login....................................................................279
Oculte a verso de seu WordPress......................................................................279
No permita logins por meio de wp-login.php...................................................279
Adicione regras .htaccess personalizadas para bloquear wp-admin..................... 281
Faa backup de tudo!............................................................................................ 282
Scan scan scan!..................................................................................................... 282
Plugins de segurana teis..................................................................................... 283
Plugins para bloquear spams............................................................................ 283
Plugins para backup........................................................................................ 283
Plugins scanners.............................................................................................. 284
Plugins para proteo de login e de senha......................................................... 285
Implementando cdigos seguros............................................................................ 286
Verificao das capacidades dos usurios.......................................................... 286
Instrues SQL personalizadas......................................................................... 287
Validao de dados, sanitizao e escaping........................................................ 288
Nonces............................................................................................................ 292

Captulo 9 JavaScript, jQuery e AJAX....................................................................................299


O que AJAX?...................................................................................................... 299
O que JSON?..................................................................................................... 299
A jQuery e o WordPress......................................................................................... 300

Sumrio

11

Enfileirando outras bibliotecas JavaScript......................................................... 300


Onde colocar o seu JavaScript personalizado.....................................................302
Chamadas AJAX com o WordPress e a jQuery........................................................ 303
Administrando vrias solicitaes AJAX................................................................ 308
API Heartbeat........................................................................................................ 310
Inicializao......................................................................................................311
JavaScript do lado do cliente..............................................................................311
PHP do lado do servidor................................................................................... 313
Inicializao..................................................................................................... 313
JavaScript do lado do cliente............................................................................. 314
PHP do lado do servidor................................................................................... 315
Limitaes do WordPress para processamento assncrono........................................ 316
Backbone.js........................................................................................................... 317

Captulo 10 XML-RPC...........................................................................................................320
wp.getUsersBlogs................................................................................................... 321
wp.getPosts............................................................................................................ 321
wp.getPost.............................................................................................................323
wp.newPost...........................................................................................................324
wp.editPost............................................................................................................325
wp.deletePost.........................................................................................................326
wp.getTerms..........................................................................................................327
wp.getTerm............................................................................................................328
wp.newTerm..........................................................................................................329
wp.editTerm...........................................................................................................329
wp.deleteTerm.......................................................................................................329
wp.getTaxonomies..................................................................................................330
wp.getTaxonomy....................................................................................................330
wp.getUsers........................................................................................................... 331
wp.getUser.............................................................................................................332
wp.getProfile..........................................................................................................333
wp.editProfile.........................................................................................................333
wp.getCommentCount...........................................................................................333
wp.getPageTemplates..............................................................................................334
wp.getOptions.......................................................................................................334
wp.setOptions........................................................................................................335
wp.getComment....................................................................................................336
wp.getComments...................................................................................................336
wp.deleteComment................................................................................................337
wp.editComment...................................................................................................337
wp.newComment..................................................................................................338
wp.getMediaLibrary...............................................................................................338
wp.getMediaItem...................................................................................................339

12

Criando Aplicaes Web com WordPress


wp.uploadFile....................................................................................................... 340
wp.getPostFormats................................................................................................. 341
wp.getPostType...................................................................................................... 341
wp.getPostTypes.....................................................................................................342

Captulo 11 Aplicativos mveis com o WordPress..................................................................343


Wrapper de aplicao.............................................................................................343
Aplicativos iOS......................................................................................................343
Cadastrando-se como um desenvolvedor Apple................................................. 344
Criando o seu aplicativo com o Xcode...............................................................345
Distribuio de aplicativos................................................................................349
Recursos para o iOS..........................................................................................350
Aplicativos para Android........................................................................................350
AndroidManifest.xml....................................................................................... 351
activity_main.xml.............................................................................................352
Criando um arquivo APK..................................................................................354
Disponibilizando o seu aplicativo no Google Play..............................................354
Recursos para o Android...................................................................................355
Estenda o seu aplicativo.........................................................................................355
AppPresser.............................................................................................................355
Casos de uso para aplicativos mveis......................................................................356

Captulo 12 Bibliotecas PHP, APIs externas e web services....................................................358


Imagick.................................................................................................................359
MaxMind GeoIP....................................................................................................359
API JavaScript v3 do Google Maps..........................................................................362
Directions.........................................................................................................362
Distance Matrix............................................................................................... 363
Elevation......................................................................................................... 363
Geocoding....................................................................................................... 363
Street View Service........................................................................................... 363
Aplicao prtica............................................................................................. 363
Google Translate....................................................................................................367
Google+............................................................................................................... 368
People (Pessoas)............................................................................................... 368
Activities (atividades)....................................................................................... 368
Comments (comentrios)................................................................................. 368
Moments (momentos)...................................................................................... 369
API Product Advertising da Amazon...................................................................... 369
Parmetros para a solicitao............................................................................370
Operaes........................................................................................................370
Grupos de resposta...........................................................................................372

Sumrio

13

API REST v1.1 do Twitter........................................................................................373


Criando a sua aplicao no Twitter.com.............................................................375
Tirando proveito de uma biblioteca PHP............................................................375
Facebook...............................................................................................................377
Imagens............................................................................................................377
Pesquisa...........................................................................................................378
Permisses........................................................................................................378
Criando uma aplicao.....................................................................................379
Tirando proveito do que existe por a.................................................................379
Twilio................................................................................................................... 380
Microsoft Sharepoint............................................................................................ 380
Deixamos alguns web services de lado................................................................... 384

Captulo 13 Criando redes WordPress Multisite....................................................................385


Por que multisite?................................................................................................. 385
Criando uma rede Multisite................................................................................... 386
Administrando uma rede Multisite........................................................................ 388
Dashboard (Painel).......................................................................................... 388
Sites................................................................................................................ 389
Users (Usurios).............................................................................................. 389
Themes (Temas).............................................................................................. 390
Plugins............................................................................................................ 390
Configuraes.................................................................................................. 391
Updates (Atualizaes)......................................................................................392
Estrutura do banco de dados Multisite...................................................................392
Tabelas vlidas para toda a rede.........................................................................392
Tabelas para sites individuais.............................................................................395
Tabelas compartilhadas entre sites.....................................................................395
Plugins Multisite................................................................................................... 396
WordPress MU Domain Mapping.................................................................... 396
Blog Copier..................................................................................................... 396
More Privacy Options.......................................................................................397
Multisite Global Search.....................................................................................397
Multisite Robots.txt Manager............................................................................397
Funcionalidades bsicas de Multisite......................................................................397
$blog_id...........................................................................................................397
is_multisite()....................................................................................................398
get_current_blog_id().......................................................................................398
switch_to_blog( $new_blog )............................................................................399
restore_current_blog()......................................................................................399
get_blog_details( $fields = null, $get_all = true )............................................... 400
update_blog_details( $blog_id, $details = array() )............................................ 401
get_blog_status( $id, $pref )............................................................................. 402

14

Criando Aplicaes Web com WordPress


update_blog_status( $blog_id, $pref, $value )................................................... 402
get_blog_option( $id, $option, $default = false )............................................... 403
update_blog_option( $id, $option, $value )....................................................... 403
delete_blog_option( $id, $option ).................................................................... 404
get_blog_post( $blog_id, $post_id )................................................................. 404
add_user_to_blog( $blog_id, $user_id, $role ).................................................. 405
create_empty_blog( $domain, $path, $weblog_title, $site_id = 1 )...................... 405
Funes que no mencionamos........................................................................ 406

Captulo 14 Localizao de aplicaes WordPress.................................................................407


mesmo necessrio fazer a localizao de sua aplicao?........................................ 407
Como feita a localizao no WordPress................................................................ 408
Definindo a sua localidade no WordPress............................................................... 409
Preparando suas strings com as funes de traduo.............................................. 409
__($text, $domain = default)......................................................................... 409
_e($text, $domain = default).......................................................................... 410
_x($text, $context, $domain = default)........................................................... 410
_ex($title, $context, $domain = default)...........................................................411
Escapando e traduzindo ao mesmo tempo..........................................................411
Criando e carregando arquivos de traduo............................................................ 412
Nossa estrutura de arquivos para efetuar a localizao....................................... 413
Gerando um arquivo .pot.................................................................................. 414
Criando um arquivo .po.................................................................................... 416
Criando um arquivo .mo................................................................................... 416
Carregando o textdomain.................................................................................. 416
Localizando recursos que no so strings................................................................ 418

Captulo 15 E-commerce.....................................................................................................421
Selecionando um plugin......................................................................................... 421
Plugins para carrinho de compras..................................................................... 421
Plugins para adeso de membros.......................................................................423
Downloads digitais...........................................................................................424
Gateways de pagamento.........................................................................................424
Contas de comerciante...........................................................................................425
Certificados SSL e HTTPS......................................................................................427
Instalando um certificado SSL em seu servidor...................................................427
SSL com o Paid Memberships Pro..................................................................... 429
O SSL com o Jigoshop...................................................................................... 430
Login e painel de administrao do WordPress por meio de SSL........................ 430
Frontend do WordPress por meio de SSL............................................................ 431
SSL em pginas selecionadas.............................................................................433
Evitando erros de SSL com a Nuclear Option...................................................437

Sumrio

15

Criando um SaaS (Software as a service) com o Paid Memberships Pro....................439


O modelo de Software como servio.......................................................................439
Passo 0: Determine o modo pelo qual voc deseja cobrar pela sua aplicao....... 440
Passo 1: Instale e ative o Paid Memberships Pro................................................ 440
Passo 2: Configure o nvel.................................................................................441
Passo 3: Crie as pginas................................................................................... 442
Passo 4: Configuraes de pagamento.............................................................. 443
Passo 5: Configuraes de email....................................................................... 445
Passo 6: Configuraes avanadas.................................................................... 446
Passo 7: Efetue o bloqueio de pginas.............................................................. 446
Bloquear uma parte de uma pgina por meio de shortcode................................ 448
Passo 8: Personalize o Paid Memberships Pro................................................... 449

Captulo16 Otimizar e escalar com o WordPress...................................................................459


Termos..................................................................................................................459
Origem versus borda..............................................................................................461
Testes.................................................................................................................... 462
O que deve ser testado..................................................................................... 462
Barra de depurao do Chrome........................................................................ 465
Apache Bench...................................................................................................467
Siege................................................................................................................. 474
Blitz.io.............................................................................................................475
W3 Total Cache.....................................................................................................476
Configuraes de cache de pginas....................................................................477
Minificar..........................................................................................................479
Caching do banco de dados............................................................................. 480
Cache de objetos.............................................................................................. 480
CDNs...............................................................................................................481
Compresso gzip..............................................................................................481
Hosting................................................................................................................ 482
Hosts especficos para o WordPress................................................................... 482
Instalando o seu prprio servidor..................................................................... 483
Caching seletivo.................................................................................................... 498
A API Transient................................................................................................ 499
Transientes em Multisite...................................................................................502
Usando JavaScript para melhorar o desempenho.................................................... 503
Tabelas personalizadas.......................................................................................... 505
Ignorando o WordPress..........................................................................................507

Anda mungkin juga menyukai