{"id":12053,"date":"2015-12-09T11:00:54","date_gmt":"2015-12-09T17:00:54","guid":{"rendered":"https:\/\/wpengine.com\/?p=12053"},"modified":"2024-12-05T14:19:04","modified_gmt":"2024-12-05T20:19:04","slug":"11-ways-wp-engine-broke-wordpress-and-then-fixed-it","status":"publish","type":"post","link":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/","title":{"rendered":"11 Ways WP Engine Broke WordPress (And Then Fixed It)"},"content":{"rendered":"<p>To really become an expert at something, you have to take it apart and put it back together again. Mechanics do this with cars; computer whizzes do this with hard drives and motherboards; and gamers do this with vintage systems and high-end gaming rigs.<\/p>\n<p>At WP Engine, we do it with WordPress.<\/p>\n<p>A small team of us recently held what we call a \u201cbreak-a-thon,\u201d an event where we cook up hacks to intentionally break WordPress to help train our support organization. That way, if we ever encounter these breaks in a customer environment, we\u2019re armed with the knowledge to fix it. It\u2019s all about learning by doing.<\/p>\n<p>For this particular break-a-thon, breaks were judged on the following criteria:<\/p>\n<ul>\n<li>It had to teach something that is easier learned by doing rather than by reading or being told ahead of time<\/li>\n<li>The skill or knowledge gained should be broadly applicable to more than just one specific break<\/li>\n<li>It must be relevant in the wild as a common or realistic issue (this was a training exercise, after all)<\/li>\n<\/ul>\n<p>Dozens for breaks were submitted, here are the top 11:<\/p>\n<ol>\n<li><strong>WP_MAX_MEMORY_LIMIT too low <\/strong>&#8211; If <a href=\"http:\/\/codex.wordpress.org\/Editing_wp-config.php#Increasing_memory_allocated_to_PHP\">this setting<\/a> is too low, operations in wp-admin may run out of memory. Sometimes plugins or themes will set this using the ini_set() PHP function, which can be tricky to track down.<\/li>\n<li><strong>&#8220;Fancy&#8221; or &#8220;Curly&#8221; quote snuck in to wp-config <\/strong>&#8211; <a href=\"http:\/\/practicaltypography.com\/straight-and-curly-quotes.html\">These little buggers<\/a> show up all the time on websites, and if you copy\/paste code that contains them, it can really mess stuff up.<\/li>\n<li><strong>Javascript redirect to mobile<\/strong> &#8211; It&#8217;s common for plugins to cause redirects, but sometimes Javascript ends up added to the contents of a particular post or page. It can be tough to track down, but fortunately it\u2019s easy to fix once you do!<\/li>\n<li><strong>Database Connection Error<\/strong> &#8211; These usually stem from one of two things: MySQL being down, or incorrect settings in wp-config.php. For this break, we focused on the latter.\u00a0It is generally more common. We have safeguards and scripts in place to prevent this from happening, but it&#8217;s still good to know!<\/li>\n<li><strong>PHP Fatal error in plugin or theme<\/strong> &#8211; These usually show up pretty clearly in an Apache\/PHP error log.\u00a0It may be a result of PHP version differences or just bad PHP.<\/li>\n<li><strong>Excessive autoloaded data<\/strong> &#8211; WordPress (or plugins\/themes) considers certain information in the _options table to be important for every page load (autoload=&#8217;yes&#8217;).\u00a0However, sometimes it gets a bit out of hand and can really slow things down.\u00a0Sometimes plugins will even leave a bunch of data behind after being deactivated\/uninstalled.\u00a0In these cases, the fix is easy! Just delete the offending database rows.<\/li>\n<li><strong>Missing .htaccess<\/strong> &#8211; The rewrites here are super important, especially for WordPress to use &#8220;permalinks&#8221; or &#8220;pretty URLs&#8221;. What happens if .htaccess is just removed? Usually unexpected 404s, which are no fun for anyone. Conveniently, it&#8217;s a <a href=\"https:\/\/codex.wordpress.org\/htaccess\">pretty easy fix<\/a>.<\/li>\n<li><strong>Bad permalinks<\/strong> &#8211; Similar to the last problem, if invalid settings end up in the database for <a href=\"https:\/\/codex.wordpress.org\/Using_Permalinks\">permalinks<\/a>, you might find weird stuff ending up in your site&#8217;s URLs.\u00a0Permalink settings are always a good thing to check when troubleshooting URL oddities.<\/li>\n<li><strong>Admin bar not showing when logged in<\/strong> &#8211; Sometimes (for whatever reason), a theme or plugin may choose to put something like show_admin_bar(false) in its code.\u00a0Why?\u00a0Who knows, but it happens.\u00a0Some plugins might even be designed to do this (for reasons?)!<\/li>\n<li><strong>&#8220;Insufficient permissions&#8221; in wp-admin<\/strong> &#8211; Often this is due to bad settings in _usermeta.\u00a0Attention to detail is key here &#8212; sometimes it&#8217;s just a couple of characters from a previously different database prefix!<\/li>\n<li><strong>Bad MIME type in .htaccess<\/strong> &#8211; Is your site downloading a file instead of showing a page in the browser? Your\u00a0.htaccess settings might be at fault.<\/li>\n<\/ol>\n<p>Breaking (and then fixing) WordPress is just one of the ways we stay ahead of the game and sharpen our WordPress expertise so we can serve our customers better. The break-a-thon was a smashing success.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To really become an expert at something, you have to take it apart and put it back together again. Mechanics do this with cars; computer whizzes do this with hard drives and motherboards; and gamers do this with vintage systems and high-end gaming rigs. At WP Engine, we do it with WordPress. A small team<span class=\"tile__ellipses\">&hellip;<\/span><span class=\"tile__ellipses--animated\"><\/span><\/p>\n","protected":false},"author":124,"featured_media":12057,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[372,5,17,6,100],"tags":[531,389,27],"class_list":["post-12053","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-development","category-how-to","category-support","category-troubleshooting-wordpress","tag-break-a-thon","tag-support","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine<\/title>\n<meta name=\"description\" content=\"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.\" \/>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine\" \/>\n<meta property=\"og:description\" content=\"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Engine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wpengine\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-09T17:00:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-05T20:19:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wpengine.com\/resources\/wp-content\/uploads\/2015\/12\/hammer-glass.650.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"650\" \/>\n\t<meta property=\"og:image:height\" content=\"270\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Bennett\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wpengine\" \/>\n<meta name=\"twitter:site\" content=\"@wpengine\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Bennett\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/\",\"url\":\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/\",\"name\":\"11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine\",\"isPartOf\":{\"@id\":\"https:\/\/wpengine.com\/resources\/#website\"},\"datePublished\":\"2015-12-09T17:00:54+00:00\",\"dateModified\":\"2024-12-05T20:19:04+00:00\",\"author\":{\"@id\":\"https:\/\/wpengine.com\/resources\/#\/schema\/person\/4d079867147aade93ca84ca480b1101a\"},\"description\":\"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.\",\"breadcrumb\":{\"@id\":\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wpengine.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"11 Ways WP Engine Broke WordPress (And Then Fixed It)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wpengine.com\/resources\/#website\",\"url\":\"https:\/\/wpengine.com\/resources\/\",\"name\":\"WP Engine\",\"description\":\"Managed Hosting for WordPress\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wpengine.com\/resources\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wpengine.com\/resources\/#\/schema\/person\/4d079867147aade93ca84ca480b1101a\",\"name\":\"Daniel Bennett\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wpengine.com\/resources\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/59b47e58c451764c1ef9663f95ef04eb03c279c1443f7f5cd9120c2aca6fea9a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/59b47e58c451764c1ef9663f95ef04eb03c279c1443f7f5cd9120c2aca6fea9a?s=96&d=mm&r=g\",\"caption\":\"Daniel Bennett\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine","description":"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.","robots":{"index":"noindex","follow":"follow"},"og_locale":"en_US","og_type":"article","og_title":"11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine","og_description":"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.","og_url":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/","og_site_name":"WP Engine","article_publisher":"https:\/\/www.facebook.com\/wpengine","article_published_time":"2015-12-09T17:00:54+00:00","article_modified_time":"2024-12-05T20:19:04+00:00","og_image":[{"width":650,"height":270,"url":"https:\/\/wpengine.com\/resources\/wp-content\/uploads\/2015\/12\/hammer-glass.650.jpeg","type":"image\/jpeg"}],"author":"Daniel Bennett","twitter_card":"summary_large_image","twitter_creator":"@wpengine","twitter_site":"@wpengine","twitter_misc":{"Written by":"Daniel Bennett","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/","url":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/","name":"11 Ways WP Engine Broke WordPress (And Then Fixed It) | WP Engine","isPartOf":{"@id":"https:\/\/wpengine.com\/resources\/#website"},"datePublished":"2015-12-09T17:00:54+00:00","dateModified":"2024-12-05T20:19:04+00:00","author":{"@id":"https:\/\/wpengine.com\/resources\/#\/schema\/person\/4d079867147aade93ca84ca480b1101a"},"description":"WP Engine recently held a break-a-thon, an event where we cook up hacks to intentionally break (then fix) WordPress to help train our support organization.","breadcrumb":{"@id":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wpengine.com\/resources\/11-ways-wp-engine-broke-wordpress-and-then-fixed-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wpengine.com\/resources\/"},{"@type":"ListItem","position":2,"name":"11 Ways WP Engine Broke WordPress (And Then Fixed It)"}]},{"@type":"WebSite","@id":"https:\/\/wpengine.com\/resources\/#website","url":"https:\/\/wpengine.com\/resources\/","name":"WP Engine","description":"Managed Hosting for WordPress","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wpengine.com\/resources\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/wpengine.com\/resources\/#\/schema\/person\/4d079867147aade93ca84ca480b1101a","name":"Daniel Bennett","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/resources\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/59b47e58c451764c1ef9663f95ef04eb03c279c1443f7f5cd9120c2aca6fea9a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/59b47e58c451764c1ef9663f95ef04eb03c279c1443f7f5cd9120c2aca6fea9a?s=96&d=mm&r=g","caption":"Daniel Bennett"}}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/posts\/12053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/users\/124"}],"replies":[{"embeddable":true,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/comments?post=12053"}],"version-history":[{"count":0,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/posts\/12053\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/media\/12057"}],"wp:attachment":[{"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/media?parent=12053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/categories?post=12053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpengine.com\/resources\/wp-json\/wp\/v2\/tags?post=12053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}