<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wp-cli config Archives - WP-CLI Mastery</title>
	<atom:link href="https://wpclimastery.com/blog/tag/wp-cli-config/feed/" rel="self" type="application/rss+xml" />
	<link>https://wpclimastery.com/blog/tag/wp-cli-config/</link>
	<description>Automate WordPress Like a DevOps Pro.</description>
	<lastBuildDate>Wed, 12 Nov 2025 20:31:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wpclimastery.com/wp-content/uploads/2025/11/cropped-favicon-32x32.webp</url>
	<title>wp-cli config Archives - WP-CLI Mastery</title>
	<link>https://wpclimastery.com/blog/tag/wp-cli-config/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WP-CLI Config Files: Best Practices and Advanced Configuration (2025)</title>
		<link>https://wpclimastery.com/blog/wp-cli-config-files-best-practices-and-advanced-configuration-2025/</link>
					<comments>https://wpclimastery.com/blog/wp-cli-config-files-best-practices-and-advanced-configuration-2025/#respond</comments>
		
		<dc:creator><![CDATA[Krasen]]></dc:creator>
		<pubDate>Sat, 15 Nov 2025 09:00:00 +0000</pubDate>
				<category><![CDATA[WP-CLI Fundamentals]]></category>
		<category><![CDATA[wordpress cli setup]]></category>
		<category><![CDATA[wp-cli config]]></category>
		<category><![CDATA[wp-cli.yml]]></category>
		<category><![CDATA[wpcli best practices]]></category>
		<category><![CDATA[wpcli configuration]]></category>
		<guid isPermaLink="false">https://wpclimastery.com/?p=166</guid>

					<description><![CDATA[<p>Typing the same WP-CLI flags repeatedly wastes time—--path=/var/www/html, --allow-root, --quiet on every command. Managing different configurations for development, staging, and production environments becomes tedious and error-prone. WP-CLI config files automate...</p>
<p>The post <a href="https://wpclimastery.com/blog/wp-cli-config-files-best-practices-and-advanced-configuration-2025/">WP-CLI Config Files: Best Practices and Advanced Configuration (2025)</a> appeared first on <a href="https://wpclimastery.com">WP-CLI Mastery</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Typing the same WP-CLI flags repeatedly wastes time—<code>--path=/var/www/html</code>, <code>--allow-root</code>, <code>--quiet</code> on every command. Managing different configurations for development, staging, and production environments becomes tedious and error-prone.</p>



<p>WP-CLI config files automate command options, set project defaults, create custom aliases, and configure environment-specific settings. One <code>wp-cli.yml</code> file eliminates repetitive typing and standardizes WP-CLI behavior across your team.</p>



<p>In this guide, you’ll learn WP-CLI config file best practices, from basic setup to advanced configurations used by professional WordPress development teams managing multiple environments.</p>



<h3 class="wp-block-heading" id="why-config-files">Why Use WP-CLI Config Files?</h3>



<p><a href="https://make.wordpress.org/cli/handbook/references/config/">WP-CLI configuration</a> simplifies command execution and ensures consistency across environments.</p>



<h4 class="wp-block-heading" id="problems-without-config-files">Problems Without Config Files</h4>



<p><strong>Repetitive flags</strong>: Typing <code>--path</code>, <code>--url</code>, <code>--allow-root</code> on every command.</p>



<p><strong>Environment inconsistency</strong>: Different settings on dev, staging, and production.</p>



<p><strong>Team confusion</strong>: Each developer uses different WP-CLI settings.</p>



<p><strong>Command complexity</strong>: Long commands with multiple flags are error-prone.</p>



<p><strong>No standardization</strong>: Can’t enforce best practices across projects.</p>



<h4 class="wp-block-heading" id="wp-cli-config-file-advantages">WP-CLI Config File Advantages</h4>



<p><strong>DRY principle</strong>: Configure once, use everywhere.</p>



<p><strong>Environment-aware</strong>: Different configs for dev, staging, production.</p>



<p><strong>Team consistency</strong>: Everyone uses same WP-CLI settings.</p>



<p><strong>Shorter commands</strong>: <code>wp plugin list</code> instead of <code>wp plugin list --path=/var/www/html --allow-root</code>.</p>



<p><strong>Version controlled</strong>: Config files tracked in Git ensure reproducibility.</p>



<p>According to <a href="https://make.wordpress.org/cli/handbook/">WP-CLI documentation</a>, config files are essential for professional WordPress workflows.</p>



<h3 class="wp-block-heading" id="basics">WP-CLI Config File Basics</h3>



<p>Understand WP-CLI config file locations and structure.</p>



<h4 class="wp-block-heading" id="config-file-locations">Config File Locations</h4>



<p>WP-CLI searches for config files in this order:</p>



<div class="sourceCode" id="cb1">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true"></a><span class="co"># 1. Current directory and parents (project-specific)</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true"></a><span class="ex">./wp-cli.yml</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true"></a><span class="ex">../wp-cli.yml</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true"></a><span class="ex">../../wp-cli.yml</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true"></a></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true"></a><span class="co"># 2. User's home directory (global defaults)</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true"></a><span class="ex">~/.wp-cli/config.yml</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true"></a></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true"></a><span class="co"># 3. System-wide config (rarely used)</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true"></a><span class="ex">/etc/wp-cli/config.yml</span></span></code></pre>
</div>



<p><strong>Priority</strong>: Project-specific configs override global configs.</p>



<h4 class="wp-block-heading" id="basic-wp-cli.yml-structure">Basic wp-cli.yml Structure</h4>



<div class="sourceCode" id="cb2">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true"></a><span class="co"># wp-cli.yml - Basic configuration</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true"></a></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true"></a><span class="co"># WordPress installation path</span></span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> /var/www/html</span></span>
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true"></a></span>
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true"></a><span class="co"># Allow root user (for servers)</span></span>
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true"></a></span>
<span id="cb2-9"><a href="#cb2-9" aria-hidden="true"></a><span class="co"># Site URL</span></span>
<span id="cb2-10"><a href="#cb2-10" aria-hidden="true"></a><span class="fu">url</span><span class="kw">:</span><span class="at"> https://example.com</span></span>
<span id="cb2-11"><a href="#cb2-11" aria-hidden="true"></a></span>
<span id="cb2-12"><a href="#cb2-12" aria-hidden="true"></a><span class="co"># Disable colorized output</span></span>
<span id="cb2-13"><a href="#cb2-13" aria-hidden="true"></a><span class="fu">color</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb2-14"><a href="#cb2-14" aria-hidden="true"></a></span>
<span id="cb2-15"><a href="#cb2-15" aria-hidden="true"></a><span class="co"># Quiet mode (suppress informational messages)</span></span>
<span id="cb2-16"><a href="#cb2-16" aria-hidden="true"></a><span class="fu">quiet</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb2-17"><a href="#cb2-17" aria-hidden="true"></a></span>
<span id="cb2-18"><a href="#cb2-18" aria-hidden="true"></a><span class="co"># Debug mode</span></span>
<span id="cb2-19"><a href="#cb2-19" aria-hidden="true"></a><span class="fu">debug</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span></code></pre>
</div>



<p>Place in your WordPress root directory:</p>



<div class="sourceCode" id="cb3">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true"></a><span class="bu">cd</span> /var/www/html</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true"></a><span class="fu">nano</span> wp-cli.yml</span></code></pre>
</div>



<h4 class="wp-block-heading" id="test-config-file">Test Config File</h4>



<div class="sourceCode" id="cb4">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true"></a><span class="co"># Show current config</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true"></a><span class="ex">wp</span> cli info</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true"></a></span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true"></a><span class="co"># Show which config files are loaded</span></span>
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true"></a><span class="ex">wp</span> cli info <span class="kw">|</span> <span class="fu">grep</span> <span class="st">"WP-CLI config"</span></span>
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true"></a></span>
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true"></a><span class="co"># Test path setting</span></span>
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true"></a><span class="ex">wp</span> option get siteurl</span></code></pre>
</div>



<p>Learn more in the <a href="https://make.wordpress.org/cli/handbook/references/config/">WP-CLI config documentation</a>.</p>



<h3 class="wp-block-heading" id="project-config">Project-Specific Configuration</h3>



<p>Configure WP-CLI for individual WordPress projects.</p>



<h4 class="wp-block-heading" id="complete-project-config">Complete Project Config</h4>



<div class="sourceCode" id="cb5">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true"></a><span class="co"># wp-cli.yml - Complete project configuration</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true"></a></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true"></a><span class="co"># Core settings</span></span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> wp</span></span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true"></a><span class="fu">url</span><span class="kw">:</span><span class="at"> https://example.com</span></span>
<span id="cb5-6"><a href="#cb5-6" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb5-7"><a href="#cb5-7" aria-hidden="true"></a></span>
<span id="cb5-8"><a href="#cb5-8" aria-hidden="true"></a><span class="co"># Output settings</span></span>
<span id="cb5-9"><a href="#cb5-9" aria-hidden="true"></a><span class="fu">color</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb5-10"><a href="#cb5-10" aria-hidden="true"></a><span class="fu">quiet</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb5-11"><a href="#cb5-11" aria-hidden="true"></a><span class="fu">debug</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb5-12"><a href="#cb5-12" aria-hidden="true"></a></span>
<span id="cb5-13"><a href="#cb5-13" aria-hidden="true"></a><span class="co"># Command aliases</span></span>
<span id="cb5-14"><a href="#cb5-14" aria-hidden="true"></a><span class="fu">@staging</span><span class="kw">:</span></span>
<span id="cb5-15"><a href="#cb5-15" aria-hidden="true"></a><span class="at">  </span><span class="fu">ssh</span><span class="kw">:</span><span class="at"> user@staging-server.com/var/www/staging</span></span>
<span id="cb5-16"><a href="#cb5-16" aria-hidden="true"></a></span>
<span id="cb5-17"><a href="#cb5-17" aria-hidden="true"></a><span class="fu">@production</span><span class="kw">:</span></span>
<span id="cb5-18"><a href="#cb5-18" aria-hidden="true"></a><span class="at">  </span><span class="fu">ssh</span><span class="kw">:</span><span class="at"> user@prod-server.com/var/www/production</span></span>
<span id="cb5-19"><a href="#cb5-19" aria-hidden="true"></a></span>
<span id="cb5-20"><a href="#cb5-20" aria-hidden="true"></a><span class="co"># Default parameters for commands</span></span>
<span id="cb5-21"><a href="#cb5-21" aria-hidden="true"></a><span class="fu">plugin list</span><span class="kw">:</span></span>
<span id="cb5-22"><a href="#cb5-22" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --format=table</span></span>
<span id="cb5-23"><a href="#cb5-23" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --fields=name,status,version,update</span></span>
<span id="cb5-24"><a href="#cb5-24" aria-hidden="true"></a></span>
<span id="cb5-25"><a href="#cb5-25" aria-hidden="true"></a><span class="fu">theme list</span><span class="kw">:</span></span>
<span id="cb5-26"><a href="#cb5-26" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --format=table</span></span>
<span id="cb5-27"><a href="#cb5-27" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --fields=name,status,version</span></span>
<span id="cb5-28"><a href="#cb5-28" aria-hidden="true"></a></span>
<span id="cb5-29"><a href="#cb5-29" aria-hidden="true"></a><span class="fu">post list</span><span class="kw">:</span></span>
<span id="cb5-30"><a href="#cb5-30" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --post_type=post</span></span>
<span id="cb5-31"><a href="#cb5-31" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --orderby=date</span></span>
<span id="cb5-32"><a href="#cb5-32" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --order=DESC</span></span>
<span id="cb5-33"><a href="#cb5-33" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --posts_per_page=20</span></span>
<span id="cb5-34"><a href="#cb5-34" aria-hidden="true"></a></span>
<span id="cb5-35"><a href="#cb5-35" aria-hidden="true"></a><span class="co"># Require specific WP-CLI version</span></span>
<span id="cb5-36"><a href="#cb5-36" aria-hidden="true"></a><span class="fu">require</span><span class="kw">:</span></span>
<span id="cb5-37"><a href="#cb5-37" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> </span><span class="fu">wp-cli/wp-cli</span><span class="kw">:</span><span class="at"> ^2.9</span></span>
<span id="cb5-38"><a href="#cb5-38" aria-hidden="true"></a></span>
<span id="cb5-39"><a href="#cb5-39" aria-hidden="true"></a><span class="co"># Custom PHP binary</span></span>
<span id="cb5-40"><a href="#cb5-40" aria-hidden="true"></a><span class="fu">php</span><span class="kw">:</span><span class="at"> /usr/bin/php8.1</span></span>
<span id="cb5-41"><a href="#cb5-41" aria-hidden="true"></a></span>
<span id="cb5-42"><a href="#cb5-42" aria-hidden="true"></a><span class="co"># Apache modules (for server info)</span></span>
<span id="cb5-43"><a href="#cb5-43" aria-hidden="true"></a><span class="fu">apache_modules</span><span class="kw">:</span></span>
<span id="cb5-44"><a href="#cb5-44" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> mod_rewrite</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="wordpress-in-subdirectory">WordPress in Subdirectory</h4>



<div class="sourceCode" id="cb6">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true"></a><span class="co"># When WordPress is in a subdirectory</span></span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true"></a></span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> public/wp</span></span>
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true"></a></span>
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true"></a><span class="co"># or</span></span>
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> wordpress</span></span>
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true"></a></span>
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true"></a><span class="co"># or</span></span>
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> htdocs/wordpress</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="custom-database-configuration">Custom Database Configuration</h4>



<div class="sourceCode" id="cb7">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true"></a><span class="co"># Override database settings (for testing)</span></span>
<span id="cb7-2"><a href="#cb7-2" aria-hidden="true"></a></span>
<span id="cb7-3"><a href="#cb7-3" aria-hidden="true"></a><span class="fu">dbname</span><span class="kw">:</span><span class="at"> test_database</span></span>
<span id="cb7-4"><a href="#cb7-4" aria-hidden="true"></a><span class="fu">dbuser</span><span class="kw">:</span><span class="at"> test_user</span></span>
<span id="cb7-5"><a href="#cb7-5" aria-hidden="true"></a><span class="fu">dbpass</span><span class="kw">:</span><span class="at"> test_password</span></span>
<span id="cb7-6"><a href="#cb7-6" aria-hidden="true"></a><span class="fu">dbhost</span><span class="kw">:</span><span class="at"> localhost</span></span>
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true"></a></span>
<span id="cb7-8"><a href="#cb7-8" aria-hidden="true"></a><span class="co"># Use custom table prefix</span></span>
<span id="cb7-9"><a href="#cb7-9" aria-hidden="true"></a><span class="fu">dbprefix</span><span class="kw">:</span><span class="at"> custom_</span></span></code></pre>
</div>



<h3 class="wp-block-heading" id="global-config">Global User Configuration</h3>



<p>Set default WP-CLI behavior for all projects.</p>



<h4 class="wp-block-heading" id="create-global-config">Create Global Config</h4>



<div class="sourceCode" id="cb8">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true"></a><span class="co"># Create config directory</span></span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true"></a><span class="fu">mkdir</span> -p ~/.wp-cli</span>
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true"></a></span>
<span id="cb8-4"><a href="#cb8-4" aria-hidden="true"></a><span class="co"># Create global config file</span></span>
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true"></a><span class="fu">nano</span> ~/.wp-cli/config.yml</span></code></pre>
</div>



<h4 class="wp-block-heading" id="global-config-template">Global Config Template</h4>



<div class="sourceCode" id="cb9">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true"></a><span class="co"># ~/.wp-cli/config.yml - Global defaults</span></span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true"></a></span>
<span id="cb9-3"><a href="#cb9-3" aria-hidden="true"></a><span class="co"># Always allow root (useful for servers)</span></span>
<span id="cb9-4"><a href="#cb9-4" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb9-5"><a href="#cb9-5" aria-hidden="true"></a></span>
<span id="cb9-6"><a href="#cb9-6" aria-hidden="true"></a><span class="co"># Color output enabled</span></span>
<span id="cb9-7"><a href="#cb9-7" aria-hidden="true"></a><span class="fu">color</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb9-8"><a href="#cb9-8" aria-hidden="true"></a></span>
<span id="cb9-9"><a href="#cb9-9" aria-hidden="true"></a><span class="co"># Show errors</span></span>
<span id="cb9-10"><a href="#cb9-10" aria-hidden="true"></a><span class="fu">debug</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb9-11"><a href="#cb9-11" aria-hidden="true"></a><span class="fu">quiet</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb9-12"><a href="#cb9-12" aria-hidden="true"></a></span>
<span id="cb9-13"><a href="#cb9-13" aria-hidden="true"></a><span class="co"># Custom command aliases (available everywhere)</span></span>
<span id="cb9-14"><a href="#cb9-14" aria-hidden="true"></a><span class="fu">alias</span><span class="kw">:</span></span>
<span id="cb9-15"><a href="#cb9-15" aria-hidden="true"></a><span class="at">  </span><span class="fu">ll</span><span class="kw">:</span><span class="at"> plugin list --status=active</span></span>
<span id="cb9-16"><a href="#cb9-16" aria-hidden="true"></a><span class="at">  </span><span class="fu">tl</span><span class="kw">:</span><span class="at"> theme list --status=active</span></span>
<span id="cb9-17"><a href="#cb9-17" aria-hidden="true"></a><span class="at">  </span><span class="fu">flushall</span><span class="kw">:</span><span class="at"> cache flush &amp;&amp; rewrite flush</span></span>
<span id="cb9-18"><a href="#cb9-18" aria-hidden="true"></a><span class="at">  </span><span class="fu">quickbackup</span><span class="kw">:</span><span class="at"> db export backup-$(date +%Y%m%d).sql.gz</span></span>
<span id="cb9-19"><a href="#cb9-19" aria-hidden="true"></a></span>
<span id="cb9-20"><a href="#cb9-20" aria-hidden="true"></a><span class="co"># Default formats</span></span>
<span id="cb9-21"><a href="#cb9-21" aria-hidden="true"></a><span class="fu">plugin list</span><span class="kw">:</span></span>
<span id="cb9-22"><a href="#cb9-22" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --format=table</span></span>
<span id="cb9-23"><a href="#cb9-23" aria-hidden="true"></a></span>
<span id="cb9-24"><a href="#cb9-24" aria-hidden="true"></a><span class="co"># Disable auto-check for updates</span></span>
<span id="cb9-25"><a href="#cb9-25" aria-hidden="true"></a><span class="fu">disable_auto_check_update</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb9-26"><a href="#cb9-26" aria-hidden="true"></a></span>
<span id="cb9-27"><a href="#cb9-27" aria-hidden="true"></a><span class="co"># Custom package path</span></span>
<span id="cb9-28"><a href="#cb9-28" aria-hidden="true"></a><span class="fu">packages_dir</span><span class="kw">:</span><span class="at"> ~/.wp-cli/packages/</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="personal-aliases">Personal Aliases</h4>



<div class="sourceCode" id="cb10">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true"></a><span class="co"># Useful custom aliases in global config</span></span>
<span id="cb10-2"><a href="#cb10-2" aria-hidden="true"></a></span>
<span id="cb10-3"><a href="#cb10-3" aria-hidden="true"></a><span class="fu">alias</span><span class="kw">:</span></span>
<span id="cb10-4"><a href="#cb10-4" aria-hidden="true"></a><span class="co">  # Quick commands</span></span>
<span id="cb10-5"><a href="#cb10-5" aria-hidden="true"></a><span class="at">  </span><span class="fu">status</span><span class="kw">:</span><span class="at"> core is-installed &amp;&amp; db check</span></span>
<span id="cb10-6"><a href="#cb10-6" aria-hidden="true"></a><span class="at">  </span><span class="fu">info</span><span class="kw">:</span><span class="at"> core version &amp;&amp; option get siteurl</span></span>
<span id="cb10-7"><a href="#cb10-7" aria-hidden="true"></a></span>
<span id="cb10-8"><a href="#cb10-8" aria-hidden="true"></a><span class="co">  # Maintenance shortcuts</span></span>
<span id="cb10-9"><a href="#cb10-9" aria-hidden="true"></a><span class="at">  </span><span class="fu">mm-on</span><span class="kw">:</span><span class="at"> maintenance-mode activate</span></span>
<span id="cb10-10"><a href="#cb10-10" aria-hidden="true"></a><span class="at">  </span><span class="fu">mm-off</span><span class="kw">:</span><span class="at"> maintenance-mode deactivate</span></span>
<span id="cb10-11"><a href="#cb10-11" aria-hidden="true"></a></span>
<span id="cb10-12"><a href="#cb10-12" aria-hidden="true"></a><span class="co">  # Cleanup operations</span></span>
<span id="cb10-13"><a href="#cb10-13" aria-hidden="true"></a><span class="fu">  cleanup</span><span class="kw">: </span><span class="ch">|</span></span>
<span id="cb10-14"><a href="#cb10-14" aria-hidden="true"></a>    post delete $(post list --post_status=trash --format=ids) --force</span>
<span id="cb10-15"><a href="#cb10-15" aria-hidden="true"></a>    transient delete --expired</span>
<span id="cb10-16"><a href="#cb10-16" aria-hidden="true"></a>    cache flush</span>
<span id="cb10-17"><a href="#cb10-17" aria-hidden="true"></a></span>
<span id="cb10-18"><a href="#cb10-18" aria-hidden="true"></a><span class="co">  # Security checks</span></span>
<span id="cb10-19"><a href="#cb10-19" aria-hidden="true"></a><span class="fu">  security</span><span class="kw">: </span><span class="ch">|</span></span>
<span id="cb10-20"><a href="#cb10-20" aria-hidden="true"></a>    core verify-checksums</span>
<span id="cb10-21"><a href="#cb10-21" aria-hidden="true"></a>    plugin verify-checksums --all</span>
<span id="cb10-22"><a href="#cb10-22" aria-hidden="true"></a></span>
<span id="cb10-23"><a href="#cb10-23" aria-hidden="true"></a><span class="co">  # Quick site backup</span></span>
<span id="cb10-24"><a href="#cb10-24" aria-hidden="true"></a><span class="fu">  backup</span><span class="kw">: </span><span class="ch">|</span></span>
<span id="cb10-25"><a href="#cb10-25" aria-hidden="true"></a>    db export backups/db-$(date +%Y%m%d-%H%M%S).sql.gz</span>
<span id="cb10-26"><a href="#cb10-26" aria-hidden="true"></a>    echo "Backup complete"</span></code></pre>
</div>



<h3 class="wp-block-heading" id="environment-configs">Environment-Specific Configs</h3>



<p>Different configurations for development, staging, and production.</p>



<h4 class="wp-block-heading" id="multi-environment-setup">Multi-Environment Setup</h4>



<div class="sourceCode" id="cb11">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true"></a><span class="co"># Project structure with environment configs</span></span>
<span id="cb11-2"><a href="#cb11-2" aria-hidden="true"></a><span class="ex">/var/www/</span></span>
<span id="cb11-3"><a href="#cb11-3" aria-hidden="true"></a>├── <span class="ex">wp-cli.yml</span>              # Base config</span>
<span id="cb11-4"><a href="#cb11-4" aria-hidden="true"></a>├── <span class="ex">wp-cli.local.yml</span>        # Development overrides</span>
<span id="cb11-5"><a href="#cb11-5" aria-hidden="true"></a>├── <span class="ex">wp-cli.staging.yml</span>      # Staging overrides</span>
<span id="cb11-6"><a href="#cb11-6" aria-hidden="true"></a>└── <span class="ex">wp-cli.production.yml</span>   # Production overrides</span></code></pre>
</div>



<h4 class="wp-block-heading" id="base-config-wp-cli.yml">Base Config (wp-cli.yml)</h4>



<div class="sourceCode" id="cb12">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true"></a><span class="co"># wp-cli.yml - Shared across all environments</span></span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true"></a></span>
<span id="cb12-3"><a href="#cb12-3" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> public</span></span>
<span id="cb12-4"><a href="#cb12-4" aria-hidden="true"></a><span class="fu">color</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb12-5"><a href="#cb12-5" aria-hidden="true"></a></span>
<span id="cb12-6"><a href="#cb12-6" aria-hidden="true"></a><span class="co"># Commands available in all environments</span></span>
<span id="cb12-7"><a href="#cb12-7" aria-hidden="true"></a><span class="fu">alias</span><span class="kw">:</span></span>
<span id="cb12-8"><a href="#cb12-8" aria-hidden="true"></a><span class="at">  </span><span class="fu">status</span><span class="kw">:</span><span class="at"> core is-installed &amp;&amp; db check</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="development-config-wp-cli.local.yml">Development Config (wp-cli.local.yml)</h4>



<div class="sourceCode" id="cb13">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true"></a><span class="co"># wp-cli.local.yml - Development settings</span></span>
<span id="cb13-2"><a href="#cb13-2" aria-hidden="true"></a></span>
<span id="cb13-3"><a href="#cb13-3" aria-hidden="true"></a><span class="fu">url</span><span class="kw">:</span><span class="at"> http://localhost:8080</span></span>
<span id="cb13-4"><a href="#cb13-4" aria-hidden="true"></a><span class="fu">debug</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb13-5"><a href="#cb13-5" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb13-6"><a href="#cb13-6" aria-hidden="true"></a></span>
<span id="cb13-7"><a href="#cb13-7" aria-hidden="true"></a><span class="co"># Enable all error output</span></span>
<span id="cb13-8"><a href="#cb13-8" aria-hidden="true"></a><span class="fu">WP_DEBUG</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb13-9"><a href="#cb13-9" aria-hidden="true"></a><span class="fu">WP_DEBUG_LOG</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb13-10"><a href="#cb13-10" aria-hidden="true"></a><span class="fu">WP_DEBUG_DISPLAY</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb13-11"><a href="#cb13-11" aria-hidden="true"></a></span>
<span id="cb13-12"><a href="#cb13-12" aria-hidden="true"></a><span class="co"># Development-specific aliases</span></span>
<span id="cb13-13"><a href="#cb13-13" aria-hidden="true"></a><span class="fu">alias</span><span class="kw">:</span></span>
<span id="cb13-14"><a href="#cb13-14" aria-hidden="true"></a><span class="at">  </span><span class="fu">seed</span><span class="kw">:</span><span class="at"> scaffold post-content --count=50</span></span>
<span id="cb13-15"><a href="#cb13-15" aria-hidden="true"></a><span class="at">  </span><span class="fu">reset-db</span><span class="kw">:</span><span class="at"> db reset --yes &amp;&amp; core install --url=http://localhost:8080 --title="Dev Site" --admin_user=admin --admin_email=dev@example.test</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="production-config-wp-cli.production.yml">Production Config (wp-cli.production.yml)</h4>



<div class="sourceCode" id="cb14">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true"></a><span class="co"># wp-cli.production.yml - Production settings</span></span>
<span id="cb14-2"><a href="#cb14-2" aria-hidden="true"></a></span>
<span id="cb14-3"><a href="#cb14-3" aria-hidden="true"></a><span class="fu">url</span><span class="kw">:</span><span class="at"> https://example.com</span></span>
<span id="cb14-4"><a href="#cb14-4" aria-hidden="true"></a><span class="fu">debug</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb14-5"><a href="#cb14-5" aria-hidden="true"></a><span class="fu">quiet</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span>
<span id="cb14-6"><a href="#cb14-6" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb14-7"><a href="#cb14-7" aria-hidden="true"></a></span>
<span id="cb14-8"><a href="#cb14-8" aria-hidden="true"></a><span class="co"># Disable dangerous commands</span></span>
<span id="cb14-9"><a href="#cb14-9" aria-hidden="true"></a><span class="fu">disabled_commands</span><span class="kw">:</span></span>
<span id="cb14-10"><a href="#cb14-10" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> db drop</span></span>
<span id="cb14-11"><a href="#cb14-11" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> db reset</span></span>
<span id="cb14-12"><a href="#cb14-12" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> scaffold</span></span>
<span id="cb14-13"><a href="#cb14-13" aria-hidden="true"></a></span>
<span id="cb14-14"><a href="#cb14-14" aria-hidden="true"></a><span class="co"># Production-safe aliases</span></span>
<span id="cb14-15"><a href="#cb14-15" aria-hidden="true"></a><span class="fu">alias</span><span class="kw">:</span></span>
<span id="cb14-16"><a href="#cb14-16" aria-hidden="true"></a><span class="fu">  deploy</span><span class="kw">: </span><span class="ch">|</span></span>
<span id="cb14-17"><a href="#cb14-17" aria-hidden="true"></a>    maintenance-mode activate</span>
<span id="cb14-18"><a href="#cb14-18" aria-hidden="true"></a>    plugin update --all</span>
<span id="cb14-19"><a href="#cb14-19" aria-hidden="true"></a>    theme update --all</span>
<span id="cb14-20"><a href="#cb14-20" aria-hidden="true"></a>    core update</span>
<span id="cb14-21"><a href="#cb14-21" aria-hidden="true"></a>    cache flush</span>
<span id="cb14-22"><a href="#cb14-22" aria-hidden="true"></a>    rewrite flush</span>
<span id="cb14-23"><a href="#cb14-23" aria-hidden="true"></a>    maintenance-mode deactivate</span></code></pre>
</div>



<h4 class="wp-block-heading" id="use-environment-configs">Use Environment Configs</h4>



<div class="sourceCode" id="cb15">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true"></a><span class="co"># Load specific config with --config flag</span></span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true"></a><span class="ex">wp</span> --config=wp-cli.local.yml plugin list</span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true"></a><span class="ex">wp</span> --config=wp-cli.production.yml core update</span>
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true"></a></span>
<span id="cb15-5"><a href="#cb15-5" aria-hidden="true"></a><span class="co"># Or use WP_CLI_CONFIG_PATH environment variable</span></span>
<span id="cb15-6"><a href="#cb15-6" aria-hidden="true"></a><span class="bu">export</span> <span class="va">WP_CLI_CONFIG_PATH=</span>wp-cli.staging.yml</span>
<span id="cb15-7"><a href="#cb15-7" aria-hidden="true"></a><span class="ex">wp</span> plugin list</span></code></pre>
</div>



<p>Learn about <a href="https://wordpress.org/support/article/installing-wordpress-locally/">WordPress environments</a> best practices.</p>



<h3 class="wp-block-heading" id="advanced-options">Advanced Configuration Options</h3>



<p>Professional config features for complex workflows.</p>



<h4 class="wp-block-heading" id="ssh-remote-execution">SSH Remote Execution</h4>



<div class="sourceCode" id="cb16">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true"></a><span class="co"># Execute commands on remote servers</span></span>
<span id="cb16-2"><a href="#cb16-2" aria-hidden="true"></a></span>
<span id="cb16-3"><a href="#cb16-3" aria-hidden="true"></a><span class="fu">@staging</span><span class="kw">:</span></span>
<span id="cb16-4"><a href="#cb16-4" aria-hidden="true"></a><span class="at">  </span><span class="fu">ssh</span><span class="kw">:</span><span class="at"> user@staging.example.com/var/www/staging</span></span>
<span id="cb16-5"><a href="#cb16-5" aria-hidden="true"></a><span class="at">  </span><span class="fu">path</span><span class="kw">:</span><span class="at"> /var/www/staging</span></span>
<span id="cb16-6"><a href="#cb16-6" aria-hidden="true"></a></span>
<span id="cb16-7"><a href="#cb16-7" aria-hidden="true"></a><span class="fu">@production</span><span class="kw">:</span></span>
<span id="cb16-8"><a href="#cb16-8" aria-hidden="true"></a><span class="at">  </span><span class="fu">ssh</span><span class="kw">:</span><span class="at"> user@prod.example.com/var/www/production</span></span>
<span id="cb16-9"><a href="#cb16-9" aria-hidden="true"></a><span class="at">  </span><span class="fu">path</span><span class="kw">:</span><span class="at"> /var/www/production</span></span>
<span id="cb16-10"><a href="#cb16-10" aria-hidden="true"></a></span>
<span id="cb16-11"><a href="#cb16-11" aria-hidden="true"></a><span class="co"># Usage:</span></span>
<span id="cb16-12"><a href="#cb16-12" aria-hidden="true"></a><span class="co"># wp @staging plugin list</span></span>
<span id="cb16-13"><a href="#cb16-13" aria-hidden="true"></a><span class="co"># wp @production core update</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="http-basic-auth">HTTP Basic Auth</h4>



<div class="sourceCode" id="cb17">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true"></a><span class="co"># For sites behind HTTP authentication</span></span>
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true"></a></span>
<span id="cb17-3"><a href="#cb17-3" aria-hidden="true"></a><span class="fu">http</span><span class="kw">:</span></span>
<span id="cb17-4"><a href="#cb17-4" aria-hidden="true"></a><span class="at">  </span><span class="fu">user</span><span class="kw">:</span><span class="at"> admin</span></span>
<span id="cb17-5"><a href="#cb17-5" aria-hidden="true"></a><span class="at">  </span><span class="fu">password</span><span class="kw">:</span><span class="at"> secretpassword</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="custom-php-binary">Custom PHP Binary</h4>



<div class="sourceCode" id="cb18">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true"></a><span class="co"># Use specific PHP version</span></span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true"></a></span>
<span id="cb18-3"><a href="#cb18-3" aria-hidden="true"></a><span class="fu">php</span><span class="kw">:</span><span class="at"> /usr/bin/php8.1</span></span>
<span id="cb18-4"><a href="#cb18-4" aria-hidden="true"></a></span>
<span id="cb18-5"><a href="#cb18-5" aria-hidden="true"></a><span class="co"># or with full path</span></span>
<span id="cb18-6"><a href="#cb18-6" aria-hidden="true"></a><span class="fu">php_bin</span><span class="kw">:</span><span class="at"> /opt/php/8.1/bin/php</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="require-specific-packages">Require Specific Packages</h4>



<div class="sourceCode" id="cb19">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true"></a><span class="co"># Ensure WP-CLI packages are installed</span></span>
<span id="cb19-2"><a href="#cb19-2" aria-hidden="true"></a></span>
<span id="cb19-3"><a href="#cb19-3" aria-hidden="true"></a><span class="fu">require</span><span class="kw">:</span></span>
<span id="cb19-4"><a href="#cb19-4" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> wp-cli/doctor-command</span></span>
<span id="cb19-5"><a href="#cb19-5" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> wp-cli/profile-command</span></span>
<span id="cb19-6"><a href="#cb19-6" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> aaemnnosttv/wp-cli-login-command</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="disable-commands">Disable Commands</h4>



<div class="sourceCode" id="cb20">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true"></a><span class="co"># Prevent dangerous commands on production</span></span>
<span id="cb20-2"><a href="#cb20-2" aria-hidden="true"></a></span>
<span id="cb20-3"><a href="#cb20-3" aria-hidden="true"></a><span class="fu">disabled_commands</span><span class="kw">:</span></span>
<span id="cb20-4"><a href="#cb20-4" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> db drop</span></span>
<span id="cb20-5"><a href="#cb20-5" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> db reset</span></span>
<span id="cb20-6"><a href="#cb20-6" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> site delete</span></span>
<span id="cb20-7"><a href="#cb20-7" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> scaffold</span></span></code></pre>
</div>



<h3 class="wp-block-heading" id="command-defaults">Command-Specific Defaults</h3>



<p>Set default options for frequently used commands.</p>



<h4 class="wp-block-heading" id="plugin-command-defaults">Plugin Command Defaults</h4>



<div class="sourceCode" id="cb21">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true"></a><span class="fu">plugin install</span><span class="kw">:</span></span>
<span id="cb21-2"><a href="#cb21-2" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --activate</span></span>
<span id="cb21-3"><a href="#cb21-3" aria-hidden="true"></a></span>
<span id="cb21-4"><a href="#cb21-4" aria-hidden="true"></a><span class="fu">plugin list</span><span class="kw">:</span></span>
<span id="cb21-5"><a href="#cb21-5" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --format=table</span></span>
<span id="cb21-6"><a href="#cb21-6" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --fields=name,status,version,update</span></span>
<span id="cb21-7"><a href="#cb21-7" aria-hidden="true"></a></span>
<span id="cb21-8"><a href="#cb21-8" aria-hidden="true"></a><span class="fu">plugin update</span><span class="kw">:</span></span>
<span id="cb21-9"><a href="#cb21-9" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --dry-run</span><span class="co"> # Always preview first</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="database-defaults">Database Defaults</h4>



<div class="sourceCode" id="cb22">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true"></a><span class="fu">db export</span><span class="kw">:</span></span>
<span id="cb22-2"><a href="#cb22-2" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --add-drop-table</span></span>
<span id="cb22-3"><a href="#cb22-3" aria-hidden="true"></a></span>
<span id="cb22-4"><a href="#cb22-4" aria-hidden="true"></a><span class="fu">db import</span><span class="kw">:</span></span>
<span id="cb22-5"><a href="#cb22-5" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --skip-optimization</span></span>
<span id="cb22-6"><a href="#cb22-6" aria-hidden="true"></a></span>
<span id="cb22-7"><a href="#cb22-7" aria-hidden="true"></a><span class="fu">search-replace</span><span class="kw">:</span></span>
<span id="cb22-8"><a href="#cb22-8" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --dry-run</span></span>
<span id="cb22-9"><a href="#cb22-9" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --report</span></span>
<span id="cb22-10"><a href="#cb22-10" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --precise</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="post-defaults">Post Defaults</h4>



<div class="sourceCode" id="cb23">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true"></a><span class="fu">post list</span><span class="kw">:</span></span>
<span id="cb23-2"><a href="#cb23-2" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --post_type=post</span></span>
<span id="cb23-3"><a href="#cb23-3" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --orderby=date</span></span>
<span id="cb23-4"><a href="#cb23-4" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --order=DESC</span></span>
<span id="cb23-5"><a href="#cb23-5" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --posts_per_page=25</span></span>
<span id="cb23-6"><a href="#cb23-6" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --fields=ID,post_title,post_status,post_date</span></span>
<span id="cb23-7"><a href="#cb23-7" aria-hidden="true"></a></span>
<span id="cb23-8"><a href="#cb23-8" aria-hidden="true"></a><span class="fu">post create</span><span class="kw">:</span></span>
<span id="cb23-9"><a href="#cb23-9" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --post_status=draft</span></span>
<span id="cb23-10"><a href="#cb23-10" aria-hidden="true"></a><span class="at">  </span><span class="kw">-</span><span class="at"> --post_author=1</span></span></code></pre>
</div>



<h3 class="wp-block-heading" id="security-team">Security and Team Configs</h3>



<p>Secure configs for team collaboration.</p>



<h4 class="wp-block-heading" id="secrets-in-environment-variables">Secrets in Environment Variables</h4>



<div class="sourceCode" id="cb24">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true"></a><span class="co"># Don't hardcode credentials in config files!</span></span>
<span id="cb24-2"><a href="#cb24-2" aria-hidden="true"></a></span>
<span id="cb24-3"><a href="#cb24-3" aria-hidden="true"></a><span class="co"># WRONG (insecure)</span></span>
<span id="cb24-4"><a href="#cb24-4" aria-hidden="true"></a><span class="fu">http</span><span class="kw">:</span></span>
<span id="cb24-5"><a href="#cb24-5" aria-hidden="true"></a><span class="at">  </span><span class="fu">user</span><span class="kw">:</span><span class="at"> admin</span></span>
<span id="cb24-6"><a href="#cb24-6" aria-hidden="true"></a><span class="at">  </span><span class="fu">password</span><span class="kw">:</span><span class="at"> secretpassword</span></span>
<span id="cb24-7"><a href="#cb24-7" aria-hidden="true"></a></span>
<span id="cb24-8"><a href="#cb24-8" aria-hidden="true"></a><span class="co"># RIGHT (use environment variables)</span></span>
<span id="cb24-9"><a href="#cb24-9" aria-hidden="true"></a><span class="fu">http</span><span class="kw">:</span></span>
<span id="cb24-10"><a href="#cb24-10" aria-hidden="true"></a><span class="at">  </span><span class="fu">user</span><span class="kw">:</span><span class="at"> ${WP_CLI_HTTP_USER}</span></span>
<span id="cb24-11"><a href="#cb24-11" aria-hidden="true"></a><span class="at">  </span><span class="fu">password</span><span class="kw">:</span><span class="at"> ${WP_CLI_HTTP_PASSWORD}</span></span></code></pre>
</div>



<p>Set in shell:</p>



<div class="sourceCode" id="cb25">
<pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true"></a><span class="bu">export</span> <span class="va">WP_CLI_HTTP_USER=</span><span class="st">"admin"</span></span>
<span id="cb25-2"><a href="#cb25-2" aria-hidden="true"></a><span class="bu">export</span> <span class="va">WP_CLI_HTTP_PASSWORD=</span><span class="st">"secretpassword"</span></span></code></pre>
</div>



<h4 class="wp-block-heading" id="gitignore-for-config-files">.gitignore for Config Files</h4>



<pre class="wp-block-code"><code># .gitignore

# Ignore local overrides
wp-cli.local.yml
wp-cli.*.local.yml

# Ignore configs with secrets
wp-cli.secrets.yml

# Keep base configs
!wp-cli.yml
!wp-cli.example.yml</code></pre>



<h4 class="wp-block-heading" id="team-config-template">Team Config Template</h4>



<div class="sourceCode" id="cb27">
<pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true"></a><span class="co"># wp-cli.example.yml - Template for team</span></span>
<span id="cb27-2"><a href="#cb27-2" aria-hidden="true"></a></span>
<span id="cb27-3"><a href="#cb27-3" aria-hidden="true"></a><span class="fu">path</span><span class="kw">:</span><span class="at"> public</span></span>
<span id="cb27-4"><a href="#cb27-4" aria-hidden="true"></a><span class="fu">url</span><span class="kw">:</span><span class="at"> REPLACE_WITH_YOUR_URL</span></span>
<span id="cb27-5"><a href="#cb27-5" aria-hidden="true"></a><span class="fu">allow-root</span><span class="kw">:</span><span class="at"> </span><span class="ch">true</span></span>
<span id="cb27-6"><a href="#cb27-6" aria-hidden="true"></a><span class="co"># Copy this to wp-cli.local.yml and customize</span></span>
<span id="cb27-7"><a href="#cb27-7" aria-hidden="true"></a><span class="co"># cp wp-cli.example.yml wp-cli.local.yml</span></span></code></pre>
</div>



<h3 class="wp-block-heading" id="next-steps">Next Steps</h3>



<p>You now have comprehensive WP-CLI config file knowledge for professional workflows.</p>



<h4 class="wp-block-heading" id="recommended-learning-path">Recommended Learning Path</h4>



<p><strong>Week 1</strong>: Basic configs</p>



<ul class="wp-block-list">
<li>Create project wp-cli.yml</li>



<li>Set up global config</li>



<li>Test common settings</li>
</ul>



<p><strong>Week 2</strong>: Environment configs</p>



<ul class="wp-block-list">
<li>Create dev/staging/prod configs</li>



<li>Set up SSH aliases</li>



<li>Test environment switching</li>
</ul>



<p><strong>Week 3</strong>: Advanced features</p>



<ul class="wp-block-list">
<li>Custom command defaults</li>



<li>Team configurations</li>



<li>Security best practices</li>
</ul>



<p><strong>Week 4</strong>: Optimization</p>



<ul class="wp-block-list">
<li>Refine configs for workflow</li>



<li>Document team standards</li>



<li>Share configs via Git</li>
</ul>



<h4 class="wp-block-heading" id="advanced-topics">Advanced Topics</h4>



<ol class="wp-block-list">
<li><strong><a href="#">WP-CLI Package Development</a></strong> &#8211; Build custom commands</li>



<li><strong><a href="#">WP-CLI in CI/CD</a></strong> &#8211; Automated testing configs</li>



<li><strong><a href="#">Multi-Site Configs</a></strong> &#8211; Network-wide settings</li>
</ol>



<h4 class="wp-block-heading" id="get-more-resources">Get More Resources</h4>



<p><strong><a href="#">Download config templates</a></strong> including:</p>



<ul class="wp-block-list">
<li>Project config examples</li>



<li>Environment-specific configs</li>



<li>Team collaboration templates</li>
</ul>



<p><strong><a href="/#get-started">Join our email course</a></strong> for:</p>



<ul class="wp-block-list">
<li>Weekly WP-CLI tutorials</li>



<li>Configuration best practices</li>



<li>Workflow optimization tips</li>
</ul>



<h3 class="wp-block-heading" id="conclusion">Conclusion</h3>



<p>WP-CLI config files transform repetitive command-line work into streamlined, consistent workflows that save time and prevent errors across your entire team.</p>



<p>What we covered:</p>



<p>✅ Config file locations and search order <br>✅ Project-specific and global configurations <br>✅ Environment-specific setups (dev/staging/prod) <br>✅ Advanced options (SSH, custom defaults, aliases) <br>✅ Command-specific defaults and optimizations <br>✅ Security and team collaboration practices</p>



<p>Master these configurations, and you’ll never type redundant WP-CLI flags again—just clean, efficient commands that work consistently everywhere.</p>



<p><strong>Ready for more?</strong> Learn <a href="#">WP-CLI aliases and shortcuts</a> or <a href="#">custom command development</a>.</p>



<p><strong>Questions about WP-CLI config files?</strong> Drop a comment below!</p>



<p><strong>Found this helpful?</strong> Share with other WordPress developers.</p>
<p>The post <a href="https://wpclimastery.com/blog/wp-cli-config-files-best-practices-and-advanced-configuration-2025/">WP-CLI Config Files: Best Practices and Advanced Configuration (2025)</a> appeared first on <a href="https://wpclimastery.com">WP-CLI Mastery</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wpclimastery.com/blog/wp-cli-config-files-best-practices-and-advanced-configuration-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
