Skip to content

Instantly share code, notes, and snippets.

Avatar
😀
Happy

Micah Wood wpscholar

😀
Happy
View GitHub Profile
@wpscholar
wpscholar / menus.sh
Created Aug 25, 2021
WP-CLI Script menu creation
View menus.sh
wp menu create "Footer Primary Menu"
wp menu item add-custom footer-primary-menu "Item 1" "#"
wp menu item add-custom footer-primary-menu "Item 2" "#"
wp menu item add-custom footer-primary-menu "Item 3" "#"
wp menu location assign footer-primary-menu footer-primary
@wpscholar
wpscholar / remove-empty-p-tags.php
Created Mar 31, 2021
WordPress plugin to remove empty paragraph tags from shortcodes in WordPress.
View remove-empty-p-tags.php
<?php
/**
* Remove Empty Paragraph Tags
*
* @package RemoveEmptyParagraphTags
* @author Micah Wood
* @copyright Copyright 2021 by Micah Wood - All rights reserved.
* @license GPL2.0-or-later
*
@wpscholar
wpscholar / deploy-on-push.yml
Created Jan 2, 2021
A GitHub Action to build, then deploy a website using rsync.
View deploy-on-push.yml
name: Deploy Website
on:
push:
branches:
- master
jobs:
deploy:
name: Deploy
@wpscholar
wpscholar / rest-url.php
Last active Dec 28, 2020
A WordPress plugin that updates the REST URL to use the site URL instead of the home URL.
View rest-url.php
<?php
/**
* Custom Rest URL
*
* @package CustomRestUrl
* @author Micah Wood
* @copyright Copyright 2021 by Micah Wood - All rights reserved.
* @license GPL2.0-or-later
*
@wpscholar
wpscholar / api-caching-example.php
Created Jun 9, 2020
An example of how to make an external API call in WordPress and cache the response.
View api-caching-example.php
<?php
$cache_key = 'my_api_call_response';
$response = get_transient( $cache_key );
if ( ! $response ) {
$response = wp_remote_get('https://example.com/api/v1/endpoint');
$status_code = (int) wp_remote_retrieve_response_code( $response );
$body = wp_remote_retrieve_body( $response );
$data = json_decode( $body, true );
if ( 200 === $status_code && $data ) {
@wpscholar
wpscholar / post-content-shortcode.php
Created May 22, 2020
A simple plugin providing a shortcode that will output the post content for a specific post ID.
View post-content-shortcode.php
<?php
/**
* Post Content Shortcode
*
* @package PostContentShortcode
* @author Micah Wood
* @copyright Copyright 2020 by Micah Wood - All rights reserved.
* @license GPL2.0-or-later
*
* @wordpress-plugin
@wpscholar
wpscholar / prevent-plugin-updates.php
Created May 19, 2020
A WordPress MU plugin that can prevent plugin updates for specific plugins.
View prevent-plugin-updates.php
<?php
add_filter(
'site_transient_update_plugins',
function ( $transient ) {
$plugins = array(
'wordpress-seo/wp-seo.php',
);
foreach ( $plugins as $plugin ) {
@wpscholar
wpscholar / single.php
Created May 8, 2020
A custom Stellar Places template to show nearby places.
View single.php
<?php
$place = Stellar_Places::get_place_object( get_post() );
$nearby = Stellar_Places::get_places(
array(
'post__not_in' => array( get_the_ID() ),
'geo_query' => array(
'lat' => $place->latitude,
'lng' => $place->longitude,
'distance' => 1,
),
@wpscholar
wpscholar / install-xdebug.sh
Created Apr 19, 2020
Install xdebug from the command line.
View install-xdebug.sh
# Use homebrew to switch PHP versions, run this command for each version as needed:
pecl install xdebug
@wpscholar
wpscholar / grep-status-codes.sh
Last active Feb 9, 2021
How to use grep to lookup status codes in access logs.
View grep-status-codes.sh
# Output the access log
cat access.log
# Run the results through grep to find any 500 status codes
cat access.log | grep "[: ]500[: ]"
# Find any non 200 status codes
cat access.log | grep -v "[: ]200[: ]"
# Find multiple status codes