{"id":41268,"date":"2016-01-14T01:05:54","date_gmt":"2016-01-14T01:05:54","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/local-development\/"},"modified":"2025-10-08T19:04:33","modified_gmt":"2025-10-08T19:04:33","slug":"local-development","status":"publish","type":"plugin","link":"https:\/\/kir.wordpress.org\/plugins\/local-development\/","author":6820837,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.11.0","stable_tag":"2.11.0","tested":"6.9.4","requires":"5.4","requires_php":"7.4","requires_plugins":null,"header_name":"Local Development","header_author":"Andy Fragen","header_description":"","assets_banners_color":"d6d9db","last_updated":"2025-10-08 19:04:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/local-development","header_author_uri":"http:\/\/thefragens.com\/","rating":5,"author_block_rating":4.375,"active_installs":90,"downloads":10057,"num_ratings":5,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.0":{"tag":"1.0","author":"afragen","date":"2016-07-10 14:26:47"},"1.1":{"tag":"1.1","author":"afragen","date":"2016-07-10 14:26:47"},"1.2":{"tag":"1.2","author":"afragen","date":"2016-07-10 14:26:47"},"1.2.1":{"tag":"1.2.1","author":"afragen","date":"2016-07-10 14:26:47"},"1.2.2":{"tag":"1.2.2","author":"afragen","date":"2016-07-10 14:26:47"},"1.2.3":{"tag":"1.2.3","author":"afragen","date":"2016-07-10 14:26:47"},"1.2.4":{"tag":"1.2.4","author":"afragen","date":"2016-07-19 18:53:33"},"1.3.0":{"tag":"1.3.0","author":"afragen","date":"2016-11-06 18:15:14"},"1.3.1":{"tag":"1.3.1","author":"afragen","date":"2017-04-13 23:38:03"},"1.4.0":{"tag":"1.4.0","author":"afragen","date":"2017-04-16 22:25:53"},"1.5.0":{"tag":"1.5.0","author":"afragen","date":"2017-11-12 06:41:08"},"1.6.0":{"tag":"1.6.0","author":"afragen","date":"2018-05-26 23:11:37"},"2.0.0":{"tag":"2.0.0","author":"afragen","date":"2018-06-19 18:10:37"},"2.1.0":{"tag":"2.1.0","author":"afragen","date":"2018-10-01 22:15:07"},"2.10.0":{"tag":"2.10.0","author":"afragen","date":"2024-12-11 17:43:19"},"2.10.1":{"tag":"2.10.1","author":"afragen","date":"2024-12-15 17:13:21"},"2.11.0":{"tag":"2.11.0","author":"afragen","date":"2025-10-08 19:04:33"},"2.2.0":{"tag":"2.2.0","author":"afragen","date":"2018-11-25 17:49:16"},"2.3.0":{"tag":"2.3.0","author":"afragen","date":"2019-01-22 18:50:45"},"2.4.0":{"tag":"2.4.0","author":"afragen","date":"2019-01-31 00:10:59"},"2.4.1":{"tag":"2.4.1","author":"afragen","date":"2019-10-30 18:35:51"},"2.5.1":{"tag":"2.5.1","author":"afragen","date":"2020-01-24 21:48:54"},"2.5.2":{"tag":"2.5.2","author":"afragen","date":"2020-02-09 20:40:59"},"2.5.3":{"tag":"2.5.3","author":"afragen","date":"2020-03-28 18:34:39"},"2.5.4":{"tag":"2.5.4","author":"afragen","date":"2020-06-01 19:20:25"},"2.5.5":{"tag":"2.5.5","author":"afragen","date":"2020-07-09 18:43:14"},"2.5.6":{"tag":"2.5.6","author":"afragen","date":"2020-07-10 19:03:07"},"2.5.7":{"tag":"2.5.7","author":"afragen","date":"2020-07-20 21:31:56"},"2.6.0":{"tag":"2.6.0","author":"afragen","date":"2020-09-01 21:51:36"},"2.6.1":{"tag":"2.6.1","author":"afragen","date":"2020-09-01 22:38:50"},"2.6.2":{"tag":"2.6.2","author":"afragen","date":"2020-09-01 23:05:27"},"2.7.0":{"tag":"2.7.0","author":"afragen","date":"2020-09-21 22:50:03"},"2.7.1":{"tag":"2.7.1","author":"afragen","date":"2020-10-05 18:05:52"},"2.7.2":{"tag":"2.7.2","author":"afragen","date":"2020-11-21 20:21:02"},"2.7.3":{"tag":"2.7.3","author":"afragen","date":"2021-03-05 22:53:21"},"2.8.0":{"tag":"2.8.0","author":"afragen","date":"2021-07-07 19:23:12"},"2.8.1":{"tag":"2.8.1","author":"afragen","date":"2022-05-10 20:10:50"},"2.8.2":{"tag":"2.8.2","author":"afragen","date":"2023-03-20 16:08:53"},"2.8.3":{"tag":"2.8.3","author":"afragen","date":"2023-07-21 18:50:51"},"2.8.4":{"tag":"2.8.4","author":"afragen","date":"2024-07-11 21:41:02"},"2.9.0":{"tag":"2.9.0","author":"afragen","date":"2024-11-01 18:26:58"},"2.9.1":{"tag":"2.9.1","author":"afragen","date":"2024-12-02 19:19:32"},"2.9.2":{"tag":"2.9.2","author":"afragen","date":"2024-12-06 04:16:26"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"5"},"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2560201,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2560201,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","1.2.1","1.2.2","1.2.3","1.2.4","1.3.0","1.3.1","1.4.0","1.5.0","1.6.0","2.0.0","2.1.0","2.10.0","2.10.1","2.11.0","2.2.0","2.3.0","2.4.0","2.4.1","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.6.0","2.6.1","2.6.2","2.7.0","2.7.1","2.7.2","2.7.3","2.8.0","2.8.1","2.8.2","2.8.3","2.8.4","2.9.0","2.9.1","2.9.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2560201,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2560201,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2560201,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2560201,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Plugin Settings","2":"Plugins Page","3":"Themes Page","4":"Multisite Themes Page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[734,23369,1141,5939],"plugin_category":[],"plugin_contributors":[78960,181100],"plugin_business_model":[],"class_list":["post-41268","plugin","type-plugin","status-publish","hentry","plugin_tags-development","plugin_tags-localhost","plugin_tags-theme","plugin_tags-upgrade","plugin_contributors-afragen","plugin_contributors-raruto","plugin_committers-afragen"],"banners":{"banner":"https:\/\/ps.w.org\/local-development\/assets\/banner-772x250.png?rev=2560201","banner_2x":"https:\/\/ps.w.org\/local-development\/assets\/banner-1544x500.png?rev=2560201","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/local-development_d6d9db.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/local-development\/assets\/screenshot-1.png?rev=2560201","caption":"Plugin Settings"},{"src":"https:\/\/ps.w.org\/local-development\/assets\/screenshot-2.png?rev=2560201","caption":"Plugins Page"},{"src":"https:\/\/ps.w.org\/local-development\/assets\/screenshot-3.png?rev=2560201","caption":"Themes Page"},{"src":"https:\/\/ps.w.org\/local-development\/assets\/screenshot-4.png?rev=2560201","caption":"Multisite Themes Page"}],"raw_content":"<!--section=description-->\n<p>Places development notice for plugins or themes that are in local development. Notices are placed on the plugins page and the themes page. Prevents updating of selected plugins and themes.<\/p>\n\n<ul>\n<li>Automatically adds plugins and themes under version control.<\/li>\n<li>Automatically allows for using a local file server.<\/li>\n<li>Allows for bypassing the WordPress 5.2 WSOD Shutdown Handler.<\/li>\n<li>Add a warning color to admin bar when running under localhost. Default is on.<\/li>\n<li>Add a git host icon to the plugins page. Default is off. No option if GitHub Updater is running.<\/li>\n<li>Allows setting of <code>WP_ENVIRONMENT_TYPE<\/code> in <code>wp-config.php<\/code>.<\/li>\n<\/ul>\n\n<p>Pull Requests are welcome against the <a href=\"https:\/\/github.com\/afragen\/local-development\">develop branch on GitHub<\/a>.<\/p>\n\n<p>Requires PHP 7.4 or greater.<\/p>\n\n<!--section=changelog-->\n<h4>2.11.0 \/ 2025-09-08<\/h4>\n\n<ul>\n<li>update for Git Updater Additions tab\/rebrand<\/li>\n<li>use <code>init<\/code> hook in startup to avoid local_textdomain error<\/li>\n<li>update requirements<\/li>\n<\/ul>\n\n<h4>2.10.1 \/ 2024-12-15<\/h4>\n\n<ul>\n<li>update for Git Updater rebrand to not duplicate git icons<\/li>\n<\/ul>\n\n<h4>2.10.0 \/ 2024-12-11<\/h4>\n\n<ul>\n<li>some reorganization to fix <code>_load_textdomain_just_in_time<\/code><\/li>\n<li>set <code>WP_ENVIRONMENT_TYPE<\/code> variable<\/li>\n<\/ul>\n\n<h4>2.9.2 \/ 2024-12-05<\/h4>\n\n<ul>\n<li>don't use <code>init<\/code> hook to in startup<\/li>\n<\/ul>\n\n<h4>2.9.1 \/ 2024-12-02<\/h4>\n\n<ul>\n<li>add GA to generate POT<\/li>\n<li>linting<\/li>\n<li>more fixing for <code>_load_textdomain_just_in_time<\/code><\/li>\n<\/ul>\n\n<h4>2.9.0 \/ 2024-11-01<\/h4>\n\n<ul>\n<li>remove <code>load_plugin_textdomain()<\/code><\/li>\n<li>fix setting to show\/hide git host icon<\/li>\n<li>composer update<\/li>\n<\/ul>\n\n<h4>2.8.4 \/ 2024-07-11<\/h4>\n\n<ul>\n<li>composer update<\/li>\n<li>update GitHub Actions<\/li>\n<li>update tested to<\/li>\n<li>linting<\/li>\n<\/ul>\n\n<h4>2.8.3<\/h4>\n\n<ul>\n<li>add nonce check for <code>update_settings()<\/code>, bad Andy<\/li>\n<\/ul>\n\n<h4>2.8.2 \/ 2023-03-20<\/h4>\n\n<ul>\n<li>PHP 8.1 compatibilty updates<\/li>\n<\/ul>\n\n<h4>2.8.1 \/ 2022-05-10<\/h4>\n\n<ul>\n<li>only use <code>esc_attr_e<\/code> for translating strings<\/li>\n<li>use <code>sanitize_title_with_dashes()<\/code> as <code>sanitize_file_name()<\/code> maybe have attached filter that changes output<\/li>\n<li>update for Local.app adding <code>WP_ENVIRONMENT_TYPE<\/code> constant in <code>local-bootstrap.php<\/code> file<\/li>\n<\/ul>\n\n<h4>2.8.0 \/ 2021-07-07<\/h4>\n\n<ul>\n<li>update WPConfigTransformer to use alternate anchor if default not present<\/li>\n<li>add @10up GitHub Actions for WordPress SVN<\/li>\n<\/ul>\n\n<h4>2.7.3 \/ 2021-03-05<\/h4>\n\n<ul>\n<li>update docblocks<\/li>\n<li>update tested to 5.7<\/li>\n<\/ul>\n\n<h4>2.7.2 \/ 2020-11-21<\/h4>\n\n<ul>\n<li>remove 'Edit' action link<\/li>\n<li>fix PHP warning when some settings not yet saved<\/li>\n<\/ul>\n\n<h4>2.7.1 \/ 2020-10-05<\/h4>\n\n<ul>\n<li>try to correcty display defined <code>WP_ENVIRONMENT_TYPE<\/code> in Settings<\/li>\n<li>remove branch switch list from GitHub Updater plugins\/themes and add <em>In Local Development<\/em> item<\/li>\n<\/ul>\n\n<h4>2.7.0 \/ 2020-099-15<\/h4>\n\n<ul>\n<li>set custom admin bar to display environment type<\/li>\n<li>remove <code>WP_ENVIRONMENT_TYPE<\/code> on deactivation<\/li>\n<li>remove a line of jQuery for removing <code>update<\/code> row class as unnecessary and now <a href=\"https:\/\/github.com\/afragen\/github-updater\/pull\/898\">conflicting with GHU<\/a><\/li>\n<li>disable the auto-update link from WP 5.5<\/li>\n<\/ul>\n\n<h4>2.6.2 \/ 2020-09-01<\/h4>\n\n<ul>\n<li>only set <code>WP_ENVIRONMENT_TYPE<\/code> when changed<\/li>\n<\/ul>\n\n<h4>2.6.1 \/ 2020-09-01<\/h4>\n\n<ul>\n<li>fix for saving <code>WP_ENVIRONMENT_TYPE<\/code><\/li>\n<\/ul>\n\n<h4>2.6.0 \/ 2020-09-01<\/h4>\n\n<ul>\n<li>add setting for <code>WP_ENVIRONMENT_TYPE<\/code> in WP 5.5+<\/li>\n<li>refactor plugin startup a bit<\/li>\n<\/ul>\n\n<h4>2.5.7 \/ 2020-07-20<\/h4>\n\n<ul>\n<li>set disabled checked option if <code>WP_DISABLE_FATAL_ERROR_HANDLER<\/code> is true<\/li>\n<\/ul>\n\n<h4>2.5.6 \/ 2020-07-10<\/h4>\n\n<ul>\n<li>fix logic for no setting<\/li>\n<\/ul>\n\n<h4>2.5.5 \/ 2020-07-09<\/h4>\n\n<ul>\n<li>skip mu-plugins and drop-ins<\/li>\n<li>filter options to save to remove unchecked and VCS repos<\/li>\n<li>add git host icon for Gists<\/li>\n<li>defer to GitHub Updater to show git host icons<\/li>\n<\/ul>\n\n<h4>2.5.4 \/ 2020-06-01<\/h4>\n\n<ul>\n<li>sanitizing, escaping &amp; ignoring<\/li>\n<\/ul>\n\n<h4>2.5.3 \/ 2020-03-28<\/h4>\n\n<ul>\n<li>move <code>Settings<\/code> action link to front<\/li>\n<\/ul>\n\n<h4>2.5.2 \/ 2020-02-03<\/h4>\n\n<ul>\n<li>use <code>is_localhost()<\/code> for local git server setting and make automatic<\/li>\n<\/ul>\n\n<h4>2.5.1 \/ 2020-01-24<\/h4>\n\n<ul>\n<li>run if no settings yet saved<\/li>\n<\/ul>\n\n<h4>2.5.0 \/ 2020-01-23<\/h4>\n\n<ul>\n<li>update <code>Requires at least<\/code> in plugin file<\/li>\n<li>add VCS checkouts automatically, thanks @Raruto<\/li>\n<li>add Git Host icons as default setting for plugins and themes<\/li>\n<li>add localhost admin bar coloring when on localhost, default is on<\/li>\n<li>some now settings only display when running in localhost<\/li>\n<li>add repositories that are added from <a href=\"https:\/\/github.com\/afragen\/github-updater-additions\">GitHub Updater Additions<\/a><\/li>\n<\/ul>\n\n<h4>2.4.1 \/ 2019-05-09<\/h4>\n\n<ul>\n<li>a11y updates for settings tabs<\/li>\n<\/ul>\n\n<h4>2.4.0 \/ 2019-01-30<\/h4>\n\n<ul>\n<li>remove language pack updates for selected plugins\/themes<\/li>\n<li>only add WSOD bypass when appropriate<\/li>\n<\/ul>\n\n<h4>2.3.0 \/ 2019-01-22<\/h4>\n\n<ul>\n<li>add bypass for WordPress 5.2 WSOD Shutdown Handler<\/li>\n<li>move loading hooks out of constructors<\/li>\n<li>pass saved options to class constructors<\/li>\n<\/ul>\n\n<h4>2.2.0 \/ 2018-11-25<\/h4>\n\n<ul>\n<li>use composer for dependencies and autoloader<\/li>\n<\/ul>\n\n<h4>2.1.0 \/ 2018-10-01<\/h4>\n\n<ul>\n<li>updated error handling in Singleton factory<\/li>\n<li>added <code>class Bootstrap<\/code> to allow for easier time with main plugin file<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>refactored to have each group in its own class, much more OOPy ;)<\/li>\n<li>use wpcs codesniffer<\/li>\n<li>removed checkboxes and delete links for checked plugins\/themes<\/li>\n<\/ul>\n\n<h4>1.6.0 \/ 2018-05-26<\/h4>\n\n<ul>\n<li>added ability to use local file server on LAN during development<\/li>\n<li>refactored hiding of update row to use jQuery and remove row, not CSS dislay none<\/li>\n<li>update to PSR-2<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>stopped creation of generic global variables<\/li>\n<\/ul>\n\n<h4>1.4.0 \/ 2017-04-16<\/h4>\n\n<ul>\n<li>redesigned Settings to put checkbox in front of plugin\/theme name<\/li>\n<li>updated screenshots<\/li>\n<\/ul>\n\n<h4>1.3.1 \/ 2017-04-13<\/h4>\n\n<ul>\n<li>move Autoloader to new location<\/li>\n<li>cleanup<\/li>\n<\/ul>\n\n<h4>1.3.0 \/ 2016-11-06<\/h4>\n\n<ul>\n<li>fixed PHP notice on settings page<\/li>\n<li>correctly load translations<\/li>\n<li>added our own PHP version check<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>cast <code>self::$themes<\/code> as array when empty, fixes PHP notice<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>fixed saving on single install when nothing selected<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>fix PHP notices on initial install and no saved settings<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>fix PHP notice<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>add hiding of update messages for GitHub Updater<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>specify <code>admin_head-settings_page_local-development<\/code> to add styles<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>rebrand as <strong>Local Development<\/strong><\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>hide update nag for selected repositories to prevent updating<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>initial release<\/li>\n<\/ul>","raw_excerpt":"Places development notice for plugins or themes that are in local development. Prevents updating of selected plugins and themes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/41268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=41268"}],"author":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/afragen"}],"wp:attachment":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=41268"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=41268"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=41268"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=41268"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=41268"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=41268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}