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 / 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
@michael-sumner
michael-sumner / functions.php
Last active May 18, 2023 17:35
get_recent_post_ids() Gets an array of recent post IDs based on the number of posts. Contains caching mechanism for high-performance. ⚡️
<?php
/**
* Gets an array of recent post IDs based on the number of posts.
*
* @param int $num_posts The number of recent posts to retrieve. Defaults to 6.
* @param int $expiration_time The expiration time for the cache, in seconds. Defaults to 1 hour.
*
* @return array An array of recent post IDs.
*/
@michael-sumner
michael-sumner / search-post-meta.sh
Last active May 10, 2023 13:12
This script prompts the user to enter a postmeta key to search for, and then retrieves the value of that postmeta key for each post on your WordPress site using the WP-CLI command wp post meta get. If the postmeta value is not "null", then the script prints the post ID to the console. This script allows you to quickly find all posts on your site…
#!/bin/bash
# Prompt the user to enter a postmeta key to search for
read -p "Enter the postmeta key to search for: " postmeta_key
# Find all posts with the specified postmeta key
post_ids=$(wp post list --format=ids)
for id in $post_ids
do
meta_value=$(wp post meta get $id $postmeta_key --format=json)