sumario criando aplicações wordpress

13
Brian Messenlehner Jason Coleman Novatec

Upload: edney-araujo-nepomuceno

Post on 17-Sep-2015

224 views

Category:

Documents


5 download

DESCRIPTION

Livro da editora Novatec excelente....Trata o wordpress de forma simples, e totalmente funcional, para diversas aplicações web

TRANSCRIPT

  • 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 PratesTraduo: Lcia A. KinoshitaReviso gramatical: Marta Almeida de SEditorao 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 11002460-000 So Paulo, SP BrasilTel.: +55 11 2959-6529Email: [email protected]: www.novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec

  • 5Sumrio

    Prefcio .................................................................................................................................17

    Apresentao .........................................................................................................................23

    Captulo 1 Criando aplicaes web com o WordPress .............................................................24O que um site? .................................................................................................... 24O que uma aplicao? .......................................................................................... 24O que uma aplicao web? ................................................................................... 25

    Caractersticas de uma aplicao web ................................................................ 25Por que usar o WordPress? ...................................................................................... 27

    Voc j est usando o WordPress ....................................................................... 27 fcil fazer gerenciamento de contedo com o WordPress .................................. 28O gerenciamento de usurios simples e seguro com o WordPress ...................... 28Plugins ............................................................................................................. 29Flexibilidade importante ................................................................................ 29Atualizaes de segurana frequentes................................................................. 30Custo ............................................................................................................... 30Aplicao .NET .................................................................................................31Aplicao WordPress ..........................................................................................31Respostas a algumas crticas comuns ao WordPress ............................................ 32

    Quando no usar o WordPress ................................................................................ 35Voc planeja cobrar uma licena ou vender a tecnologia de seu site ..................... 35H outra plataforma que far voc chegar l mais rapidamente ......................... 35A flexibilidade NO importante para voc ...................................................... 35Sua aplicao deve ser realmente de tempo real .................................................. 36

    O WordPress como um framework de aplicao ...................................................... 37WordPress versus frameworks MVC .................................................................. 37

    A anatomia de uma aplicao WordPress ................................................................. 40O que o SchoolPress?.......................................................................................41O SchoolPress executa em uma rede WordPress Multisite ....................................41O modelo de negcios do SchoolPress ................................................................41Nveis de adeso e funes de usurios .............................................................. 42As classes so grupos BuddyPress ...................................................................... 42

  • Criando Aplicaes Web com WordPress6

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

    Captulo 2 Bsico do WordPress ............................................................................................46A 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 ............................................................. 48wp_options ...................................................................................................... 49Funes que se encontram em /wp-includes/option.php ..................................... 49wp_users ...........................................................................................................52Funes que se encontram em /wp-includes/ ...................................................52wp_usermeta .................................................................................................... 56wp_posts ...........................................................................................................61Funes que se encontram em /wp-includes/post.php ........................................ 62wp_postmeta .................................................................................................... 65Funes que se encontram em /wp-includes/post.php ........................................ 66wp_comments .................................................................................................. 70Funes que se encontram em /wp-includes/comment.php ................................ 70Funes que se encontram em /wp-includes/comment.php ................................ 76wp_links .......................................................................................................... 79wp_terms ......................................................................................................... 80Funes que se encontram em /wp-includes/taxonomy.php ................................ 80wp_term_taxonomy .......................................................................................... 83Funes que se encontram em /wp-includes/taxonomy.php ................................ 83wp_term_relationships ..................................................................................... 84

    Estendendo o WordPress ........................................................................................ 86

    Captulo 3 Tirando proveito dos plugins do WordPress...........................................................87A licena GPLv2 ..................................................................................................... 88Instalando plugins WordPress ................................................................................. 89Criando seu prprio plugin .................................................................................... 90Estrutura de arquivos do plugin de uma aplicao ...................................................91

    /adminpages/ .................................................................................................... 92/classes/ ............................................................................................................ 92

  • 7Sumrio

    /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 .............................................................................. 98Casos de uso e exemplos ........................................................................................ 98

    O lao do WordPress ......................................................................................... 99Variveis globais do WordPress .........................................................................100Hooks de aes .................................................................................................111Filtros .............................................................................................................. 112

    Plugins gratuitos ................................................................................................... 113All in One SEO Pack ........................................................................................ 113BadgeOS.......................................................................................................... 114Custom Post Type UI ....................................................................................... 114Posts 2 Posts .................................................................................................... 114Members ......................................................................................................... 115W3 Total Cache ............................................................................................... 116

    Plugins premium .................................................................................................. 116Gravity Forms ................................................................................................. 116Backup Buddy ................................................................................................. 116WP All Import ................................................................................................. 117

    Plugins de comunidade ......................................................................................... 117BuddyPress ...................................................................................................... 117Tabelas do banco de dados ............................................................................... 119

    Captulo 4 Temas ...............................................................................................................131Temas versus plugins ............................................................................................. 131

    Quando desenvolver aplicaes ........................................................................ 131Quando desenvolver plugins ............................................................................133Quando desenvolver temas ...............................................................................133

    A hierarquia de templates ......................................................................................134Templates de pgina ..............................................................................................136

    Exemplo de template de pgina ........................................................................136Usando hooks para copiar templates .................................................................139Quando usar um template de tema ................................................................... 141

    Funes WP relacionadas a temas .......................................................................... 141Usando locate_template em seus plugins ..........................................................143

    Style.css ................................................................................................................144

  • Criando Aplicaes Web com WordPress8

    Atribuindo verses aos arquivos CSS de seu tema .............................................. 145Functions.php ....................................................................................................... 147Temas e tipos de post personalizados ..................................................................... 147Frameworks populares de temas ...........................................................................148

    Frameworks de temas para o WordPress ............................................................148Frameworks de temas no exclusivos do WordPress ...........................................150

    Criando um tema-filho para o StartBox .................................................................150Incluindo o Bootstrap no tema de sua aplicao ..................................................... 151Menus ..................................................................................................................153

    Menus de navegao ........................................................................................153Menus dinmicos ............................................................................................154

    Design responsivo .................................................................................................155Deteco de dispositivo e de display no CSS ......................................................155Deteco de dispositivos e de recursos no JavaScript ..........................................157Deteco de dispositivos no PHP ......................................................................160Observao 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 ..........................167Tipos de post default e tipos de post personalizados ...............................................167

    Pgina (page) ...................................................................................................167Post .................................................................................................................167Anexo (attachment) .........................................................................................168Revises (revisions) ..........................................................................................168Item de menu de navegao (nav menu item) ....................................................168

    Definindo e registrando tipos de post personalizados .............................................168register_post_type( $post_type, $args ); ............................................................169

    O que uma taxonomia e como devo us-la? .........................................................179Taxonomias versus metadados de post ..............................................................179Criando taxonomias personalizadas .................................................................182register_taxonomy_for_object_type( $taxonomy, $object_type ) ........................186

    Usando tipos de post personalizados e taxonomias em seus temas e plugins ...........187Os arquivos de template Archive e Single do tema .............................................187Os bons e velhos WP_Query e get_posts() ........................................................188

    Metadados com CPTs ............................................................................................192add_meta_box( $id, $title, $callback, $screen, $context, $priority, $callback_args ) ..

    192Classes wrapper personalizadas para CPTs .............................................................195

    Estender WP_Post versus encapsul-la ..............................................................198Por que usar classes wrapper? ...........................................................................198Mantenha seus CPTs e as taxonomias juntos .....................................................199Mantenha tudo na classe wrapper ................................................................... 200As classes wrapper so mais legveis ..................................................................202

  • 9Sumrio

    Captulo 6 Usurios, funes e capacidades ........................................................................204Obtendo dados de usurio ................................................................................... 205Adicionar, atualizar e apagar usurios ................................................................... 208Hooks e filtros .......................................................................................................211O que so funes e capacidades? .......................................................................... 212

    Verificando a funo e as capacidades de um usurio ........................................ 213Criando funes e capacidades personalizadas .................................................. 215

    Estendendo a classe WP_User ............................................................................... 217Adicionando campos para inscrio e perfil ........................................................... 219Personalizando a tabela de usurios no painel ........................................................225Plugins .................................................................................................................227

    Theme My Login .............................................................................................227Hide Admin Bar from Non-Admins ..................................................................227Paid Memberships Pro .................................................................................... 228PMPro Register Helper .................................................................................... 228Members ........................................................................................................ 229

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

    Atributos de shortcode ..................................................................................... 231Shortcodes aninhados ......................................................................................232Removendo shortcodes ....................................................................................233Outras funes teis relacionadas a shortcodes .................................................234

    API Widgets ..........................................................................................................234Antes de adicionar o seu prprio widget ...........................................................235Adicionando widgets........................................................................................236Definindo uma rea de widget ..........................................................................240Inserindo um widget fora de uma barra lateral dinmica ...................................243

    API Dashboard Widgets ....................................................................................... 244Removendo widgets do painel ......................................................................... 244Adicionando seu prprio widget de painel ....................................................... 246

    API Settings ..........................................................................................................249Voc realmente precisa de uma pgina de configuraes? ...................................250 possvel usar um hook ou um filtro como alternativa? ..................................... 251Utilize padres ao adicionar configuraes ........................................................252Ignore padres ao adicionar configuraes ........................................................253

    API Rewrite ..........................................................................................................254Adicionando regras de reescrita ........................................................................255Limpando as regras de reescrita ....................................................................... 256Outras funes de reescrita ..............................................................................257

    WP-Cron ............................................................................................................. 260Adicionando intervalos de tempo personalizados .............................................. 261

  • Criando Aplicaes Web com WordPress10

    Agendando eventos nicos ...............................................................................262Disparando cron jobs a partir do servidor ........................................................ 263Usando somente crons do servidor .................................................................. 264

    WP Mail .............................................................................................................. 265Enviando emails mais elegantes com o WordPress ............................................ 266

    API File Header .................................................................................................... 268Adicionando cabealhos aos seus prprios arquivos ..........................................270Adicionando novos cabealhos a plugins e temas .............................................. 271

    Captulo 8 Segurana no WordPress ....................................................................................273Por que a segurana importante ..........................................................................273Bsico sobre a segurana .......................................................................................274

    Faa atualizaes com frequncia .....................................................................274No utilize o nome de usurio admin .............................................................274Utilize uma senha robusta ................................................................................275Exemplos de senhas ruins ................................................................................275Exemplos de senhas boas .................................................................................276

    Tornando sua instalao do WordPress mais robusta ..............................................276No permita que os administradores editem plugins ou temas...........................276Altere o prefixo default das tabelas do banco de dados ..................................... 277Mova wp-config.php para outro local ...............................................................278Oculte mensagens de erro de login ...................................................................279Oculte a verso de seu WordPress .....................................................................279No permita logins por meio de wp-login.php ..................................................279Adicione regras .htaccess personalizadas para bloquear wp-admin ....................281

    Faa backup de tudo! ........................................................................................... 282Scan scan scan! .................................................................................................... 282Plugins de segurana teis .................................................................................... 283

    Plugins para bloquear spams ........................................................................... 283Plugins para backup........................................................................................ 283Plugins scanners ............................................................................................. 284Plugins para proteo de login e de senha ........................................................ 285

    Implementando cdigos seguros ........................................................................... 286Verificao das capacidades dos usurios ......................................................... 286Instrues SQL personalizadas ........................................................................ 287Validao de dados, sanitizao e escaping ....................................................... 288Nonces ........................................................................................................... 292

    Captulo 9 JavaScript, jQuery e AJAX ...................................................................................299O que AJAX? ..................................................................................................... 299O que JSON? .................................................................................................... 299A jQuery e o WordPress ........................................................................................ 300

  • 11Sumrio

    Enfileirando outras bibliotecas JavaScript ........................................................ 300Onde colocar o seu JavaScript personalizado ....................................................302

    Chamadas AJAX com o WordPress e a jQuery ....................................................... 303Administrando vrias solicitaes AJAX ............................................................... 308API Heartbeat ....................................................................................................... 310

    Inicializao .....................................................................................................311JavaScript do lado do cliente .............................................................................311PHP do lado do servidor .................................................................................. 313Inicializao .................................................................................................... 313JavaScript do lado do cliente ............................................................................ 314PHP do lado do servidor .................................................................................. 315

    Limitaes do WordPress para processamento assncrono ....................................... 316Backbone.js .......................................................................................................... 317

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

  • Criando Aplicaes Web com WordPress12

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

    Captulo 11 Aplicativos mveis com o WordPress .................................................................343Wrapper de aplicao ............................................................................................343Aplicativos iOS .....................................................................................................343

    Cadastrando-se como um desenvolvedor Apple ................................................ 344Criando o seu aplicativo com o Xcode ..............................................................345Distribuio de aplicativos ...............................................................................349Recursos para o iOS .........................................................................................350

    Aplicativos para Android .......................................................................................350AndroidManifest.xml ...................................................................................... 351activity_main.xml ............................................................................................352Criando um arquivo APK .................................................................................354Disponibilizando o seu aplicativo no Google Play .............................................354Recursos para o Android ..................................................................................355

    Estenda o seu aplicativo ........................................................................................355AppPresser ............................................................................................................355Casos de uso para aplicativos mveis .....................................................................356

    Captulo 12 Bibliotecas PHP, APIs externas e web services ...................................................358Imagick ................................................................................................................359MaxMind GeoIP ...................................................................................................359API JavaScript v3 do Google Maps .........................................................................362

    Directions ........................................................................................................362Distance Matrix .............................................................................................. 363Elevation ........................................................................................................ 363Geocoding ...................................................................................................... 363Street View Service .......................................................................................... 363Aplicao prtica ............................................................................................ 363

    Google Translate ...................................................................................................367Google+ .............................................................................................................. 368

    People (Pessoas) .............................................................................................. 368Activities (atividades) ...................................................................................... 368Comments (comentrios) ................................................................................ 368Moments (momentos) ..................................................................................... 369

    API Product Advertising da Amazon ..................................................................... 369Parmetros para a solicitao ...........................................................................370Operaes .......................................................................................................370Grupos de resposta ..........................................................................................372

  • 13Sumrio

    API REST v1.1 do Twitter .......................................................................................373Criando a sua aplicao no Twitter.com ............................................................375Tirando proveito de uma biblioteca PHP ...........................................................375

    Facebook ..............................................................................................................377Imagens ...........................................................................................................377Pesquisa ..........................................................................................................378Permisses .......................................................................................................378Criando uma aplicao ....................................................................................379Tirando proveito do que existe por a ................................................................379

    Twilio .................................................................................................................. 380Microsoft Sharepoint ........................................................................................... 380Deixamos alguns web services de lado .................................................................. 384

    Captulo 13 Criando redes WordPress Multisite ...................................................................385Por que multisite? ................................................................................................ 385Criando uma rede Multisite .................................................................................. 386Administrando uma rede Multisite ....................................................................... 388

    Dashboard (Painel) ......................................................................................... 388Sites ............................................................................................................... 389Users (Usurios) ............................................................................................. 389Themes (Temas) ............................................................................................. 390Plugins ........................................................................................................... 390Configuraes ................................................................................................. 391Updates (Atualizaes) .....................................................................................392

    Estrutura do banco de dados Multisite ..................................................................392Tabelas vlidas para toda a rede ........................................................................392Tabelas para sites individuais ............................................................................395Tabelas compartilhadas entre sites ....................................................................395

    Plugins Multisite .................................................................................................. 396WordPress MU Domain Mapping.................................................................... 396Blog Copier .................................................................................................... 396More Privacy Options ......................................................................................397Multisite Global Search ....................................................................................397Multisite Robots.txt Manager ...........................................................................397

    Funcionalidades bsicas de Multisite .....................................................................397$blog_id ..........................................................................................................397is_multisite() ...................................................................................................398get_current_blog_id() ......................................................................................398switch_to_blog( $new_blog ) ...........................................................................399restore_current_blog() .....................................................................................399get_blog_details( $fields = null, $get_all = true ) .............................................. 400update_blog_details( $blog_id, $details = array() ) ........................................... 401get_blog_status( $id, $pref ) ............................................................................ 402

  • Criando Aplicaes Web com WordPress14

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

    Captulo 14 Localizao de aplicaes WordPress ................................................................407 mesmo necessrio fazer a localizao de sua aplicao? ....................................... 407Como feita a localizao no WordPress ............................................................... 408Definindo a sua localidade no WordPress .............................................................. 409Preparando 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) ..........................................................411Escapando e traduzindo ao mesmo tempo .........................................................411

    Criando e carregando arquivos de traduo ........................................................... 412Nossa estrutura de arquivos para efetuar a localizao ...................................... 413Gerando um arquivo .pot ................................................................................. 414Criando um arquivo .po ...................................................................................416Criando um arquivo .mo ..................................................................................416Carregando o textdomain .................................................................................416

    Localizando recursos que no so strings ............................................................... 418

    Captulo 15 E-commerce ....................................................................................................421Selecionando um plugin ........................................................................................ 421

    Plugins para carrinho de compras .................................................................... 421Plugins para adeso de membros ......................................................................423Downloads digitais ..........................................................................................424

    Gateways de pagamento ........................................................................................424Contas de comerciante ..........................................................................................425Certificados SSL e HTTPS .....................................................................................427

    Instalando um certificado SSL em seu servidor ..................................................427SSL com o Paid Memberships Pro .................................................................... 429O SSL com o Jigoshop ..................................................................................... 430Login e painel de administrao do WordPress por meio de SSL ....................... 430Frontend do WordPress por meio de SSL ........................................................... 431SSL em pginas selecionadas ............................................................................433Evitando erros de SSL com a Nuclear Option ..................................................437

  • 15Sumrio

    Criando um SaaS (Software as a service) com o Paid Memberships Pro ...................439O modelo de Software como servio ......................................................................439

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

    Captulo16 Otimizar e escalar com o WordPress ..................................................................459Termos .................................................................................................................459Origem versus borda .............................................................................................461Testes ................................................................................................................... 462

    O que deve ser testado .................................................................................... 462Barra de depurao do Chrome ....................................................................... 465Apache Bench ..................................................................................................467Siege ................................................................................................................ 474Blitz.io ............................................................................................................475

    W3 Total Cache ....................................................................................................476Configuraes de cache de pginas ...................................................................477Minificar .........................................................................................................479Caching do banco de dados ............................................................................ 480Cache de objetos ............................................................................................. 480CDNs ..............................................................................................................481Compresso gzip .............................................................................................481

    Hosting ............................................................................................................... 482Hosts especficos para o WordPress .................................................................. 482Instalando o seu prprio servidor .................................................................... 483

    Caching seletivo ................................................................................................... 498A API Transient ............................................................................................... 499Transientes em Multisite ..................................................................................502

    Usando JavaScript para melhorar o desempenho ................................................... 503Tabelas personalizadas ......................................................................................... 505Ignorando o WordPress .........................................................................................507