{"product_id":"professional-wordpress-9781118987247","title":"Professional WordPress","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eThe highest rated WordPress development and design book on the market is back with an all new third edition.\u003c\/b\u003e  \u003cp\u003e\u003ci\u003eProfessional WordPress\u003c\/i\u003e is the only WordPress book targeted to developers, with advanced content that exploits the full functionality of the most popular CMS in the world. Fully updated to align with WordPress 4.1, this edition has updated examples with all new screenshots, and full exploration of additional tasks made possible by the latest tools and features. You will gain insight into real projects that currently use WordPress as an application framework, as well as the basic usage and functionality of the system from a developer''s perspective. The book''s key features include detailed information and real-world examples that illustrate the concepts and techniques at work, plus code downloads and examples accessible through the companion website. Written by practicing WordPress developers, the content of this edition focuses on real world application of Word\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e\u003cp\u003eIntroduction xxxi\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: First Post 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is WordPress? 1\u003c\/p\u003e \u003cp\u003ePopularity of WordPress 3\u003c\/p\u003e \u003cp\u003eCurrent State 3\u003c\/p\u003e \u003cp\u003eIntersecting the Community 4\u003c\/p\u003e \u003cp\u003eWordPress and the GPL 5\u003c\/p\u003e \u003cp\u003eContent and Conversation 6\u003c\/p\u003e \u003cp\u003eWordPress as a Content Management System 6\u003c\/p\u003e \u003cp\u003eCreating Conversation 7\u003c\/p\u003e \u003cp\u003eGetting Started 7\u003c\/p\u003e \u003cp\u003eHosting Options 8\u003c\/p\u003e \u003cp\u003eDo it Yourself Installation 9\u003c\/p\u003e \u003cp\u003eInstalling WordPress Files 10\u003c\/p\u003e \u003cp\u003eDatabase Configuration 14\u003c\/p\u003e \u003cp\u003eFinishing Up 18\u003c\/p\u003e \u003cp\u003eFirst‐Time Administration 18\u003c\/p\u003e \u003cp\u003eFirst Post 20\u003c\/p\u003e \u003cp\u003eSummary 21\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Code Overview 23\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDownloading 23\u003c\/p\u003e \u003cp\u003eDownload Locations 23\u003c\/p\u003e \u003cp\u003eAvailable Formats 24\u003c\/p\u003e \u003cp\u003eRelease Archive 24\u003c\/p\u003e \u003cp\u003eDirectory and File Structure 25\u003c\/p\u003e \u003cp\u003eWordPress Configuration 26\u003c\/p\u003e \u003cp\u003ewp‐config.php File 26\u003c\/p\u003e \u003cp\u003eAdvanced wp‐config.php Options 29\u003c\/p\u003e \u003cp\u003e.htaccess 35\u003c\/p\u003e \u003cp\u003eThe .maintenance File 39\u003c\/p\u003e \u003cp\u003ewp‐content User Playground 40\u003c\/p\u003e \u003cp\u003ePlugins 40\u003c\/p\u003e \u003cp\u003eThemes 41\u003c\/p\u003e \u003cp\u003eUploads and Media Directory 41\u003c\/p\u003e \u003cp\u003eUpgrade Directory 41\u003c\/p\u003e \u003cp\u003eCustom Directories 42\u003c\/p\u003e \u003cp\u003eSummary 42\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Working with Wordpress Locally 43\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBenefits of Working Locally 43\u003c\/p\u003e \u003cp\u003eTypical Deployment Cycle 44\u003c\/p\u003e \u003cp\u003eWhy So Much Process? 44\u003c\/p\u003e \u003cp\u003eTools for Component Administration 46\u003c\/p\u003e \u003cp\u003eGetting Your Development Stack 46\u003c\/p\u003e \u003cp\u003eAdding WordPress to the Local Install 47\u003c\/p\u003e \u003cp\u003eConfiguration Details 48\u003c\/p\u003e \u003cp\u003eManaging the Web Server Document Tree 49\u003c\/p\u003e \u003cp\u003eEnabling Debug Information 50\u003c\/p\u003e \u003cp\u003eHandling Local and Production Database 53\u003c\/p\u003e \u003cp\u003eCreating Virtual Local Server Names 53\u003c\/p\u003e \u003cp\u003eLocal Theme and Plugin Development 56\u003c\/p\u003e \u003cp\u003eVirtual Machines 56\u003c\/p\u003e \u003cp\u003eDeploying Local Changes 57\u003c\/p\u003e \u003cp\u003eSummary 59\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Tour of the Core 61\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat’s in the Core? 61\u003c\/p\u003e \u003cp\u003eUsing the Core as a Reference 62\u003c\/p\u003e \u003cp\u003eInline Documentation 63\u003c\/p\u003e \u003cp\u003eFinding Functions 64\u003c\/p\u003e \u003cp\u003eExploring the Core 66\u003c\/p\u003e \u003cp\u003eDeprecated Functions 69\u003c\/p\u003e \u003cp\u003eWordPress Codex and Code Reference 70\u003c\/p\u003e \u003cp\u003eWhat is the Codex? 70\u003c\/p\u003e \u003cp\u003eUsing the Codex 70\u003c\/p\u003e \u003cp\u003eFunction Reference 72\u003c\/p\u003e \u003cp\u003eWordPress APIs 73\u003c\/p\u003e \u003cp\u003eCodex Controversy 75\u003c\/p\u003e \u003cp\u003eCode Reference 75\u003c\/p\u003e \u003cp\u003eUsing the Code Reference 75\u003c\/p\u003e \u003cp\u003eCode Reference Details 76\u003c\/p\u003e \u003cp\u003eCodex Versus Code Reference 77\u003c\/p\u003e \u003cp\u003eDon’t Hack the Core! 77\u003c\/p\u003e \u003cp\u003eWhy Not? 77\u003c\/p\u003e \u003cp\u003eAlternatives to Hacking the Core 78\u003c\/p\u003e \u003cp\u003eSummary 78\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: The Loop 79\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the Loop 80\u003c\/p\u003e \u003cp\u003eFrom Query Parameters to SQL 81\u003c\/p\u003e \u003cp\u003eUnderstanding Content in WordPress 82\u003c\/p\u003e \u003cp\u003ePutting the Loop in Context 82\u003c\/p\u003e \u003cp\u003eFlow of the Loop 83\u003c\/p\u003e \u003cp\u003eTemplate Tags 86\u003c\/p\u003e \u003cp\u003eCommonly Used Template Tags 86\u003c\/p\u003e \u003cp\u003eTag Parameters 87\u003c\/p\u003e \u003cp\u003eCustomizing the Loop 88\u003c\/p\u003e \u003cp\u003eUsing the WP_Query Object 88\u003c\/p\u003e \u003cp\u003eBuilding a Custom Query 89\u003c\/p\u003e \u003cp\u003eAdding Paging to a Loop 92\u003c\/p\u003e \u003cp\u003eUsing the pre_get_posts Hook 93\u003c\/p\u003e \u003cp\u003eUsing query_posts( ) 94\u003c\/p\u003e \u003cp\u003eUsing get_posts( ) 96\u003c\/p\u003e \u003cp\u003eResetting a Query 96\u003c\/p\u003e \u003cp\u003eMore Than One Loop 98\u003c\/p\u003e \u003cp\u003eAdvanced Queries 99\u003c\/p\u003e \u003cp\u003eGlobal Variables 102\u003c\/p\u003e \u003cp\u003ePost Data 102\u003c\/p\u003e \u003cp\u003eAuthor Data 104\u003c\/p\u003e \u003cp\u003eUser Data 104\u003c\/p\u003e \u003cp\u003eEnvironmental Data 105\u003c\/p\u003e \u003cp\u003eGlobal Variables or Template Tags? 106\u003c\/p\u003e \u003cp\u003eWorking Outside the Loop 106\u003c\/p\u003e \u003cp\u003eSummary 109\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Data Management 111\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDatabase Schema 111\u003c\/p\u003e \u003cp\u003eTable Details 113\u003c\/p\u003e \u003cp\u003eWordPress Content Tables 114\u003c\/p\u003e \u003cp\u003eWordPress Taxonomy Tables 115\u003c\/p\u003e \u003cp\u003eWordPress Database Class 117\u003c\/p\u003e \u003cp\u003eSimple Database Queries 117\u003c\/p\u003e \u003cp\u003eComplex Database Operations 119\u003c\/p\u003e \u003cp\u003eDealing with Errors 121\u003c\/p\u003e \u003cp\u003eDirect Database Manipulation 123\u003c\/p\u003e \u003cp\u003eSummary 126\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Custom Post Types, Custom Taxonomies, and Metadata 127\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Data in WordPress 127\u003c\/p\u003e \u003cp\u003eWhat is a Custom Post Type? 128\u003c\/p\u003e \u003cp\u003eRegister Custom Post Types 128\u003c\/p\u003e \u003cp\u003eSetting Post Type Labels 133\u003c\/p\u003e \u003cp\u003eWorking with Custom Post Types 135\u003c\/p\u003e \u003cp\u003eCustom Post Type Template Files 136\u003c\/p\u003e \u003cp\u003eSpecial Post Type Functions 136\u003c\/p\u003e \u003cp\u003eWordPress Taxonomy 138\u003c\/p\u003e \u003cp\u003eDefault Taxonomies 138\u003c\/p\u003e \u003cp\u003eTaxonomy Table Structure 139\u003c\/p\u003e \u003cp\u003eUnderstanding Taxonomy Relationships 139\u003c\/p\u003e \u003cp\u003eBuilding Your Own Taxonomies 140\u003c\/p\u003e \u003cp\u003eCustom Taxonomy Overview 140\u003c\/p\u003e \u003cp\u003eCreating Custom Taxonomies 140\u003c\/p\u003e \u003cp\u003eSetting Custom Taxonomy Labels 144\u003c\/p\u003e \u003cp\u003eUsing Your Custom Taxonomy 145\u003c\/p\u003e \u003cp\u003eMetadata 146\u003c\/p\u003e \u003cp\u003eWhat is Metadata? 147\u003c\/p\u003e \u003cp\u003eAdding Metadata 147\u003c\/p\u003e \u003cp\u003eUpdating Metadata 148\u003c\/p\u003e \u003cp\u003eDeleting Metadata 148\u003c\/p\u003e \u003cp\u003eRetrieving Metadata 149\u003c\/p\u003e \u003cp\u003eCommunity Projects 150\u003c\/p\u003e \u003cp\u003eSummary 151\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Plugin Development 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePlugin Packaging 154\u003c\/p\u003e \u003cp\u003eCreating a Plugin File 154\u003c\/p\u003e \u003cp\u003eCreating the Plugin Header 154\u003c\/p\u003e \u003cp\u003ePlugin License 155\u003c\/p\u003e \u003cp\u003eActivating and Deactivating Functions 156\u003c\/p\u003e \u003cp\u003eInternationalization 157\u003c\/p\u003e \u003cp\u003eDetermining Paths 159\u003c\/p\u003e \u003cp\u003eLocal Paths 160\u003c\/p\u003e \u003cp\u003eURL Paths 160\u003c\/p\u003e \u003cp\u003ePlugin Security 161\u003c\/p\u003e \u003cp\u003eNonces 161\u003c\/p\u003e \u003cp\u003eData Validation and Sanitization 163\u003c\/p\u003e \u003cp\u003eKnow Your Hooks: Actions and Filters 166\u003c\/p\u003e \u003cp\u003eActions and Filters 166\u003c\/p\u003e \u003cp\u003ePopular Filter Hooks 168\u003c\/p\u003e \u003cp\u003ePopular Action Hooks 169\u003c\/p\u003e \u003cp\u003ePlugin Settings 171\u003c\/p\u003e \u003cp\u003eSaving Plugin Options 171\u003c\/p\u003e \u003cp\u003eArray of Options 172\u003c\/p\u003e \u003cp\u003eCreating a Menu and Submenus 173\u003c\/p\u003e \u003cp\u003eCreating a Top‐Level Menu 173\u003c\/p\u003e \u003cp\u003eAdding to an Existing Menu 175\u003c\/p\u003e \u003cp\u003eCreating an Options Page 176\u003c\/p\u003e \u003cp\u003eWordPress Integration 186\u003c\/p\u003e \u003cp\u003eCreating a Meta Box 186\u003c\/p\u003e \u003cp\u003eShortcodes 191\u003c\/p\u003e \u003cp\u003eCreating a Widget 192\u003c\/p\u003e \u003cp\u003eCreating a Dashboard Widget 197\u003c\/p\u003e \u003cp\u003eCreating Custom Tables 197\u003c\/p\u003e \u003cp\u003eUninstalling Your Plugin 200\u003c\/p\u003e \u003cp\u003eCreating a Plugin Example 201\u003c\/p\u003e \u003cp\u003ePublishing to the Plugin Directory 222\u003c\/p\u003e \u003cp\u003eRestrictions 222\u003c\/p\u003e \u003cp\u003eSubmitting Your Plugin 223\u003c\/p\u003e \u003cp\u003eCreating a readme.txt File 223\u003c\/p\u003e \u003cp\u003eSetting Up SVN 226\u003c\/p\u003e \u003cp\u003ePublishing to the Plugin Directory 228\u003c\/p\u003e \u003cp\u003eReleasing a New Version 228\u003c\/p\u003e \u003cp\u003ePlugin Assets 229\u003c\/p\u003e \u003cp\u003eSummary 230\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Theme Development 231\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy Use a Theme? 231\u003c\/p\u003e \u003cp\u003eInstalling a Theme 232\u003c\/p\u003e \u003cp\u003eFTP Installation 233\u003c\/p\u003e \u003cp\u003eTheme Installer 233\u003c\/p\u003e \u003cp\u003eWhat is a Theme? 234\u003c\/p\u003e \u003cp\u003eTemplate Files 234\u003c\/p\u003e \u003cp\u003eCSS 234\u003c\/p\u003e \u003cp\u003eImages and Assets 235\u003c\/p\u003e \u003cp\u003ePlugins 235\u003c\/p\u003e \u003cp\u003eCreating Your Own Theme 235\u003c\/p\u003e \u003cp\u003eProject Themes vs. Child Themes 235\u003c\/p\u003e \u003cp\u003eWhat to Look for in a Starter Theme 236\u003c\/p\u003e \u003cp\u003eCreating Your Own Theme: Getting Started 237\u003c\/p\u003e \u003cp\u003eEssential File: Style.css 238\u003c\/p\u003e \u003cp\u003eShowing Your Content: Index.php 239\u003c\/p\u003e \u003cp\u003eShowing Your Content in Different Ways: Index.php 241\u003c\/p\u003e \u003cp\u003eCreating Your Own Theme: DRY 241\u003c\/p\u003e \u003cp\u003eHeader.php 241\u003c\/p\u003e \u003cp\u003eFooter.php 243\u003c\/p\u003e \u003cp\u003eSidebar.php 243\u003c\/p\u003e \u003cp\u003eDeviations from the Norm: Conditional Tags 244\u003c\/p\u003e \u003cp\u003eCreating Your Own Theme: Content Display 245\u003c\/p\u003e \u003cp\u003eCustomizing Your Homepage: Front‐Page.php 246\u003c\/p\u003e \u003cp\u003eShow Your Older Posts by Date: Archive.php 249\u003c\/p\u003e \u003cp\u003eShowing Only One Category: Category.php 250\u003c\/p\u003e \u003cp\u003eShow Posts of a Specific Tag: Tag.php 252\u003c\/p\u003e \u003cp\u003eOther Archival Templates 253\u003c\/p\u003e \u003cp\u003eHow to Show a Single Post: Single.php 253\u003c\/p\u003e \u003cp\u003eDisplay a Page: Page.php 255\u003c\/p\u003e \u003cp\u003eDisplay Post Attachments: Attachment.php 255\u003c\/p\u003e \u003cp\u003eDisplay Custom Post Types 256\u003c\/p\u003e \u003cp\u003eTemplate Hierarchy 256\u003c\/p\u003e \u003cp\u003eCreating Your Own Theme: Additional Files 258\u003c\/p\u003e \u003cp\u003eHandling 404 Errors: 404.php 258\u003c\/p\u003e \u003cp\u003eAuthor.php 259\u003c\/p\u003e \u003cp\u003eComments.php 260\u003c\/p\u003e \u003cp\u003eAdding Functionality to Your Templates: Functions.php 261\u003c\/p\u003e \u003cp\u003eSearch.php 264\u003c\/p\u003e \u003cp\u003eSearchForm.php 265\u003c\/p\u003e \u003cp\u003eOther Files 266\u003c\/p\u003e \u003cp\u003eCustom Page Templates 266\u003c\/p\u003e \u003cp\u003eWhen to Use Custom Page Templates 267\u003c\/p\u003e \u003cp\u003eHow to Use Custom Page Templates 268\u003c\/p\u003e \u003cp\u003eStock Twenty Fourteen Page Templates 269\u003c\/p\u003e \u003cp\u003eOther Theme Enhancements 269\u003c\/p\u003e \u003cp\u003eMenu Management 269\u003c\/p\u003e \u003cp\u003eWidget Areas 271\u003c\/p\u003e \u003cp\u003ePost Formats 272\u003c\/p\u003e \u003cp\u003eTheme Settings 274\u003c\/p\u003e \u003cp\u003eTheme Customizer 274\u003c\/p\u003e \u003cp\u003eTheme Hierarchy and Child Themes 275\u003c\/p\u003e \u003cp\u003ePremium Themes and Other Theme Frameworks 279\u003c\/p\u003e \u003cp\u003eUnderscores (_s) Theme 280\u003c\/p\u003e \u003cp\u003eBones Theme 280\u003c\/p\u003e \u003cp\u003eCarrington Core Theme 280\u003c\/p\u003e \u003cp\u003eGenesis Theme 280\u003c\/p\u003e \u003cp\u003eHybrid Core Theme 281\u003c\/p\u003e \u003cp\u003eOthers Theme 281\u003c\/p\u003e \u003cp\u003eSummary 281\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Multisite 283\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is Multisite? 283\u003c\/p\u003e \u003cp\u003eMultisite Terminology 284\u003c\/p\u003e \u003cp\u003eDifferences 284\u003c\/p\u003e \u003cp\u003eAdvantages of Multisite 285\u003c\/p\u003e \u003cp\u003eEnabling Multisite 285\u003c\/p\u003e \u003cp\u003eWorking in a Network 286\u003c\/p\u003e \u003cp\u003eNetwork Admin 287\u003c\/p\u003e \u003cp\u003eCreating and Managing Sites 287\u003c\/p\u003e \u003cp\u003eWorking with Users and Roles 288\u003c\/p\u003e \u003cp\u003eThemes and Plugins 288\u003c\/p\u003e \u003cp\u003eSettings 289\u003c\/p\u003e \u003cp\u003eDomain Mapping 289\u003c\/p\u003e \u003cp\u003eCoding for Multisite 290\u003c\/p\u003e \u003cp\u003eBlog ID 290\u003c\/p\u003e \u003cp\u003eCommon Functions 290\u003c\/p\u003e \u003cp\u003eSwitching and Restoring Sites 292\u003c\/p\u003e \u003cp\u003eCreating a New Site 295\u003c\/p\u003e \u003cp\u003eNetwork Admin Menus 300\u003c\/p\u003e \u003cp\u003eMultisite Options 301\u003c\/p\u003e \u003cp\u003eUsers in a Network 308\u003c\/p\u003e \u003cp\u003eSuper Admins 310\u003c\/p\u003e \u003cp\u003eNetwork Stats 311\u003c\/p\u003e \u003cp\u003eLarge Networks 312\u003c\/p\u003e \u003cp\u003eMultisite Database Schema 312\u003c\/p\u003e \u003cp\u003eMultisite‐Specific Tables 312\u003c\/p\u003e \u003cp\u003eSite‐Specific Tables 313\u003c\/p\u003e \u003cp\u003eSummary 314\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Migrating to Wordpress 315\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the Process 316\u003c\/p\u003e \u003cp\u003eContent Sources 316\u003c\/p\u003e \u003cp\u003eMigration Checklist 317\u003c\/p\u003e \u003cp\u003eSite Preparation 318\u003c\/p\u003e \u003cp\u003eContent Identification 318\u003c\/p\u003e \u003cp\u003eMigrating Text Documents 319\u003c\/p\u003e \u003cp\u003eBuilt-In WordPress Import Tools 319\u003c\/p\u003e \u003cp\u003eBuilding a Custom Import Script 321\u003c\/p\u003e \u003cp\u003eMedia Migration 329\u003c\/p\u003e \u003cp\u003eMoving Metadata 330\u003c\/p\u003e \u003cp\u003eMoving Authors and Users 330\u003c\/p\u003e \u003cp\u003eTheme and Presentation 331\u003c\/p\u003e \u003cp\u003eUnique Functionality 331\u003c\/p\u003e \u003cp\u003eCleaning Up 331\u003c\/p\u003e \u003cp\u003eManual Fine-Tuning 332\u003c\/p\u003e \u003cp\u003eImport Limitations 332\u003c\/p\u003e \u003cp\u003eUpdating URLs 332\u003c\/p\u003e \u003cp\u003eRedirection 333\u003c\/p\u003e \u003cp\u003eLaunching 334\u003c\/p\u003e \u003cp\u003eWP-CLI 334\u003c\/p\u003e \u003cp\u003eWhat is WP-CLI? 334\u003c\/p\u003e \u003cp\u003eInstalling WP-CLI 335\u003c\/p\u003e \u003cp\u003eMigration Example 335\u003c\/p\u003e \u003cp\u003eSummary 337\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Crafting a User Experience 339\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUser Experience Principles 339\u003c\/p\u003e \u003cp\u003eConsistent Navigation 340\u003c\/p\u003e \u003cp\u003eVisual Design Elements 342\u003c\/p\u003e \u003cp\u003eMaking Content Easy to Find 343\u003c\/p\u003e \u003cp\u003eSite Load Times 344\u003c\/p\u003e \u003cp\u003eUsing JavaScript 345\u003c\/p\u003e \u003cp\u003eUsability and Usability Testing 346\u003c\/p\u003e \u003cp\u003eStructuring Your Information 347\u003c\/p\u003e \u003cp\u003eGetting Your Site Found 349\u003c\/p\u003e \u003cp\u003eDuplicate Content 351\u003c\/p\u003e \u003cp\u003eTrackbacks and Pings 353\u003c\/p\u003e \u003cp\u003eHow Web Standards Get Your Data Discovered 354\u003c\/p\u003e \u003cp\u003eSemantic HTML 354\u003c\/p\u003e \u003cp\u003eValid HTML 356\u003c\/p\u003e \u003cp\u003eMicroformats 357\u003c\/p\u003e \u003cp\u003eHTML5 359\u003c\/p\u003e \u003cp\u003eCSS3 361\u003c\/p\u003e \u003cp\u003eSearching Your Own Site 361\u003c\/p\u003e \u003cp\u003eWeaknesses of the Default Search 362\u003c\/p\u003e \u003cp\u003eAlternatives and Plugins to Help 363\u003c\/p\u003e \u003cp\u003eMobile Access and Responsive Web Design 364\u003c\/p\u003e \u003cp\u003eLeave it Alone 365\u003c\/p\u003e \u003cp\u003eLightweight Mobile 365\u003c\/p\u003e \u003cp\u003eResponsive Design 366\u003c\/p\u003e \u003cp\u003eSummary 367\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Securing Wordpress 369\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSecuring Your WordPress Site 369\u003c\/p\u003e \u003cp\u003eStaying Up‐to‐Date 370\u003c\/p\u003e \u003cp\u003eHiding WordPress Version Information 371\u003c\/p\u003e \u003cp\u003eNever Use the Admin Username 371\u003c\/p\u003e \u003cp\u003eLimit Login Attempts 371\u003c\/p\u003e \u003cp\u003eUsing Good Passwords 371\u003c\/p\u003e \u003cp\u003eChanging Your Table Prefix 372\u003c\/p\u003e \u003cp\u003eMoving Your Configuration File 372\u003c\/p\u003e \u003cp\u003eMoving Your Content Directory 372\u003c\/p\u003e \u003cp\u003eUsing the Security Key Feature 373\u003c\/p\u003e \u003cp\u003eForcing SSL on Login and Admin 374\u003c\/p\u003e \u003cp\u003eApache Permissions 374\u003c\/p\u003e \u003cp\u003eMySQL Credentials 375\u003c\/p\u003e \u003cp\u003eUsing WordPress Roles 375\u003c\/p\u003e \u003cp\u003eSubscriber Role 375\u003c\/p\u003e \u003cp\u003eContributor Role 376\u003c\/p\u003e \u003cp\u003eAuthor Role 376\u003c\/p\u003e \u003cp\u003eEditor Role 376\u003c\/p\u003e \u003cp\u003eAdministrator Role 376\u003c\/p\u003e \u003cp\u003eSuper Admin Role 377\u003c\/p\u003e \u003cp\u003eRole Overview 377\u003c\/p\u003e \u003cp\u003eExtending Roles 378\u003c\/p\u003e \u003cp\u003eRecommended Security Plugins 378\u003c\/p\u003e \u003cp\u003eBulletProof Security 378\u003c\/p\u003e \u003cp\u003eWP‐Security Scan 378\u003c\/p\u003e \u003cp\u003eWordFence Security 379\u003c\/p\u003e \u003cp\u003eSummary 379\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Application Framework 381\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is an Application Framework? 381\u003c\/p\u003e \u003cp\u003eWordPress as an Application Framework 382\u003c\/p\u003e \u003cp\u003eUser Management 382\u003c\/p\u003e \u003cp\u003eTemplate Engine 384\u003c\/p\u003e \u003cp\u003eCRUD 384\u003c\/p\u003e \u003cp\u003eCaching 386\u003c\/p\u003e \u003cp\u003eFriendly URLs 387\u003c\/p\u003e \u003cp\u003eExternal APIs 388\u003c\/p\u003e \u003cp\u003eUploads and Media Management 388\u003c\/p\u003e \u003cp\u003eScheduled Tasks 389\u003c\/p\u003e \u003cp\u003eFlexibility 390\u003c\/p\u003e \u003cp\u003eSummary 390\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Wordpress in the Real World 391\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIs WordPress the Right Tool? 391\u003c\/p\u003e \u003cp\u003eWhen WordPress is Not the Right Tool 393\u003c\/p\u003e \u003cp\u003eDefining Content Management 394\u003c\/p\u003e \u003cp\u003eWorkflow and Delegation 395\u003c\/p\u003e \u003cp\u003eUser Roles and Delegation 395\u003c\/p\u003e \u003cp\u003eWorkflow 396\u003c\/p\u003e \u003cp\u003eContent Organization 398\u003c\/p\u003e \u003cp\u003eTheme and Widget Support 399\u003c\/p\u003e \u003cp\u003eHomepages 400\u003c\/p\u003e \u003cp\u003eFeatured Content Pages 401\u003c\/p\u003e \u003cp\u003eContent Hierarchy 403\u003c\/p\u003e \u003cp\u003eInteractivity Features 404\u003c\/p\u003e \u003cp\u003eForums 405\u003c\/p\u003e \u003cp\u003eForms 405\u003c\/p\u003e \u003cp\u003eE‐Commerce 405\u003c\/p\u003e \u003cp\u003eScalability 406\u003c\/p\u003e \u003cp\u003ePerformance Tuning 406\u003c\/p\u003e \u003cp\u003eDatabase Optimizations 408\u003c\/p\u003e \u003cp\u003eRegular Database Maintenance 408\u003c\/p\u003e \u003cp\u003eHardware Scaling 409\u003c\/p\u003e \u003cp\u003eStatistics Counters 411\u003c\/p\u003e \u003cp\u003eAWStats 411\u003c\/p\u003e \u003cp\u003eGoogle Analytics 412\u003c\/p\u003e \u003cp\u003eJetPack by WordPress.com 413\u003c\/p\u003e \u003cp\u003eCache Management 413\u003c\/p\u003e \u003cp\u003eWordPress System Complexity 414\u003c\/p\u003e \u003cp\u003eWeb Server Caching and Optimization 416\u003c\/p\u003e \u003cp\u003eWordPress Object Caching 417\u003c\/p\u003e \u003cp\u003eTransient Caches 418\u003c\/p\u003e \u003cp\u003eMySQL Query Cache 420\u003c\/p\u003e \u003cp\u003eLoad Balancing Your WordPress Site 421\u003c\/p\u003e \u003cp\u003eDealing with Spam 423\u003c\/p\u003e \u003cp\u003eComment Moderation and CAPTCHAs 423\u003c\/p\u003e \u003cp\u003eAutomating Spam Detection 424\u003c\/p\u003e \u003cp\u003eOther Content Management Systems 425\u003c\/p\u003e \u003cp\u003eWordPress Integration 425\u003c\/p\u003e \u003cp\u003eWhere Not to Use WordPress 426\u003c\/p\u003e \u003cp\u003eSummary 427\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Wordpress Developer Community 429\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eContributing to WordPress 429\u003c\/p\u003e \u003cp\u003eUnderstanding Trac 430\u003c\/p\u003e \u003cp\u003eWorking on the Core 433\u003c\/p\u003e \u003cp\u003eSubmitting Plugins and Themes 434\u003c\/p\u003e \u003cp\u003eDocumentation 434\u003c\/p\u003e \u003cp\u003eSister Projects 435\u003c\/p\u003e \u003cp\u003eBuddyPress 435\u003c\/p\u003e \u003cp\u003ebbPress 435\u003c\/p\u003e \u003cp\u003eFuture Projects 435\u003c\/p\u003e \u003cp\u003eResources 436\u003c\/p\u003e \u003cp\u003eCodex 436\u003c\/p\u003e \u003cp\u003eHandbooks 436\u003c\/p\u003e \u003cp\u003eSupport Forums 436\u003c\/p\u003e \u003cp\u003eWordPress Chat 437\u003c\/p\u003e \u003cp\u003eMailing Lists 438\u003c\/p\u003e \u003cp\u003eExternal Resources 439\u003c\/p\u003e \u003cp\u003eWordCamp and Meetups 440\u003c\/p\u003e \u003cp\u003eWordPress.TV 440\u003c\/p\u003e \u003cp\u003eTheme\/Plugin Directories 440\u003c\/p\u003e \u003cp\u003eWordPress Ideas 440\u003c\/p\u003e \u003cp\u003eWordPress Development Updates 440\u003c\/p\u003e \u003cp\u003eMake WordPress.org 441\u003c\/p\u003e \u003cp\u003eWordPress Podcasts 441\u003c\/p\u003e \u003cp\u003eWordPress News Sites 442\u003c\/p\u003e \u003cp\u003eSummary 443\u003c\/p\u003e \u003cp\u003eIndex 445\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":49406962991447,"sku":"9781118987247","price":30.39,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781118987247.jpg?v=1730497709","url":"https:\/\/bookcurl.com\/products\/professional-wordpress-9781118987247","provider":"Book Curl","version":"1.0","type":"link"}