Skip to content

Instantly share code, notes, and snippets.

View michael-sumner's full-sized avatar
:electron:
Making the world better with incredible digital experiences

Michael Sumner michael-sumner

:electron:
Making the world better with incredible digital experiences
View GitHub Profile
@michael-sumner
michael-sumner / index.sh
Last active June 11, 2024 09:47
Loop through all posts and re-save them, which helps trigger the save_post hook. Example post type: "resource" is used. `--no-store` helps prevent an empty required value.
wp post update $(wp post list --post_type=resource --field=ID) --nostore
@michael-sumner
michael-sumner / shell.sh
Last active May 23, 2024 11:52
Set the existing user as administrator role across all sites in the WordPress multi-site network
# wp site list --field=url | xargs -I % sh -c 'wp user set-role <user-login> <role> --url=%'
#
# For example:
wp site list --field=url | xargs -I % sh -c 'wp user set-role testuser administrator --url=%'
@michael-sumner
michael-sumner / pantheon-test-command.sh
Last active March 4, 2024 09:02
Pantheon terminus - How to Loop in Subshell Commands
# Example: loop through all post ids and update the post meta for each post_id to assign the post_date
for post_id in $(terminus remote:wp examplesite.environment -- post list --format=ids); do terminus remote:wp examplesite.environment -- post meta update "$post_id" examplemeta_start_date "$(terminus remote:wp examplesite.environment -- post get $post_id --field=post_date)"; done
@michael-sumner
michael-sumner / bash.sh
Last active October 23, 2023 17:56
WP-CLI - List all user roles with specific capability
capability="upload_files"
wp role list --fields=role --format=csv | tail -n +2 | while IFS= read -r role; do
if wp cap list "$role" | grep -q $capability; then
echo "$role"
fi
done
@michael-sumner
michael-sumner / index.sh
Created September 14, 2023 11:17
WP-CLI command to loop through all sites in the multisite network and use wp db query to obtain a list of posts, and save them in log.txt file
# replace "Hello, World!" with appropriate string to search for
# replace `post_title` with appropriate column to search for
wp site list --fields=url,blog_id | while IFS= read -r line; do
url=$(echo "$line" | awk -F'\t' '{print $1}')
blog_id=$(echo "$line" | awk -F'\t' '{print $2}')
wp post list --field=url --ignore_sticky_posts=1 --orderby=date --order=DESC --post__in=$(wp db query "SELECT ID FROM wp_${blog_id}_posts WHERE post_title LIKE '%Hello, World!%' AND post_status='publish' AND post_type='post'" --skip-column-names --url=${url} | paste -s -d ',' -) --url=${url}
done >> log.txt
@michael-sumner
michael-sumner / index.sh
Created September 8, 2023 13:54
WP-CLI to check which sites in a multisite network have a specific plugin activated
wp site list --field=url | xargs -I % sh -c 'wp plugin is-active wordpress-seo --url=% && echo "Plugin is activated on site %"'
@michael-sumner
michael-sumner / functions.php
Created September 5, 2023 15:23
Disable WordPress core attempts to redirect old posts.
<?php
// Disable WordPress core attempts to redirect old posts.
add_filter( 'old_slug_redirect_post_id', '__return_zero' );
add_filter( 'redirect_canonical', '__return_empty_string' );
<!doctype html>
<html class="bg-gray-100">
<head>
<title>Checksum Generator</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div
class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8"
>
<?php
// List down all the functions assigned to the "the_content" filter hook.
function get_the_content_filters() {
$filters = array();
ob_start();
the_content();
$output = ob_get_clean();
global $wp_filter;
@michael-sumner
michael-sumner / index.sh
Created May 26, 2023 12:04
Copy git diff staged to clipboard for macOS
git diff --staged | pbcopy