If you are experiencing issues in your WordPress this can be a result of a Plugin conflict. In some cases the only way to isolate the conflict is to disable plugins 1 by 1 to determine the issue. This can be very time consuming to try to complete via the GUI in the WordPress Dashboard. Below is a script you can run from a Shell session which will automate this process making it much faster:
{
for pluginname in $(wp plugin list --skip-{plugins,themes} | awk '{print $1}'| grep -v ^name$); do
if [ $(wp plugin get "$pluginname" --skip-{plugins,themes} | grep status | awk '{print $2}') == 'active' ]; then
echo "Disabling Plugin: $pluginname"
wp plugin deactivate "$pluginname" --skip-{plugins,themes}
echo "Does the site work now? (Y/N)"
read -r yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "$pluginname was breaking the site"'!'
break
else
wp plugin activate "$pluginname" --skip-{plugins,themes}
continue
fi
else
echo "Plugin $pluginname already inactive, skipping"'!'
continue
fi
done
}
Here is an example of the output once you run this script:
Disabling Plugin: akismet
Plugin 'akismet' deactivated.
Success: Deactivated 1 of 1 plugins.
Does the site work now? (Y/N)
n
Plugin 'akismet' activated.
Success: Activated 1 of 1 plugins.
Disabling Plugin: heartbeat-control
Plugin 'heartbeat-control' deactivated.
Success: Deactivated 1 of 1 plugins.
Does the site work now? (Y/N)
n
Plugin 'heartbeat-control' activated.
Success: Activated 1 of 1 plugins.
Disabling Plugin: hello
Plugin 'hello' deactivated.
Success: Deactivated 1 of 1 plugins.
Does the site work now? (Y/N)
y
hello was breaking the site\!