Skip to content

Instantly share code, notes, and snippets.

@mishterk
mishterk / app.php
Last active July 1, 2020 11:18
An example illustrating PHP's ability to return data from included files. For more info, see https://philkurth.com.au/tips/included-files-can-return-values-which-is-a-great-way-to-manage-app-configurations/
<?php
$config = include 'config.php';
echo $config['some']; // 'config'
@mishterk
mishterk / Dump.php
Created October 19, 2019 10:42
A simple static class for dumping information to a log file of your choosing. For more info, see https://philkurth.com.au/tips/a-php-class-for-dumping-data-to-a-separate-log-file/
<?php
/**
* Class Dump
* A simple static class for dumping data to a separate log file to aid debugging and development.
*
* @author Phil Kurth <[email protected]>
*/
class Dump {
@mishterk
mishterk / aliased-one-liner-to-update-everything-in-wordpress.sh
Last active July 1, 2020 11:19
Simplify WordPress updates by bundling them by using WP CLI and running them all from the one 'command'. For more info see https://philkurth.com.au/tips/simplify-wordpress-updates-using-these-sequential-wp-cli-commands/
alias wp-update-all="wp plugin update --all && wp language plugin update --all && wp theme update --all && wp language theme update --all && wp core update --force && wp language core update"
<?php
add_action( 'wp_enqueue_scripts', function () {
wp_register_script( 'my-script', get_stylesheet_directory_uri() . '/assets/js/my-script.js' );
wp_enqueue_script( 'my-script' );
} );
add_filter( 'script_loader_tag', function ( $tag, $handle ) {
@mishterk
mishterk / define-custom-colour-palette-for-gutenberg.php
Last active October 14, 2019 09:57
How to define custom colour palette for Gutenberg; the new WordPress block editor. More info see https://philkurth.com.au/tips/how-to-customize-the-colour-palette-for-wordpress-gutenberg-block-editor/
<?php
add_action( 'after_setup_theme', function () {
add_theme_support( 'editor-color-palette', [
[
'name' => 'Purple',
'slug' => 'purple',
'color' => '#2B265C'
],
<?php
add_action( 'admin_footer', function () {
?>
<script>
if (window.acf) {
acf.addFilter('color_picker_args', function (args, $field) {
args.palettes = [
'#E6D8D5',
<?php
add_filter( 'acf/fields/wysiwyg/toolbars', function ( $toolbars ) {
// Register a basic toolbar with a single row of options
$toolbars['Custom One'][1] = [ 'bold', 'italic', 'underline', 'forecolor', 'link', 'unlink' ];
// Register another toolbar, this time with two rows of options.
$toolbars['Custom Two'][1] = [ 'bold', 'italic', 'underline', 'strikethrough', 'forecolor', 'wp_adv' ];
$toolbars['Custom Two'][2] = [ 'bullist', 'numlist', 'alignleft', 'aligncenter', 'alignright' ];
<?php
add_filter( 'acf/settings/load_json', function ( array $directories ) {
$base_dir = get_stylesheet_directory() . '/components';
$resource = opendir( $base_dir );
while ( ( $file = readdir( $resource ) ) !== false ) {
// Skip current and parent directory references
@mishterk
mishterk / customise-advanced-forms-mail-payload.php
Created October 4, 2019 23:48
Intercept and modify the payload sent by Advanced Forms
<?php
// Set the form key you wish to target
$form_key = 'form_5d97cf9edc0a8';
add_action( "af/email/before_send/key=$form_key", function ( $email, $form ) {
add_filter( 'wp_mail', function ( $data ) use ( $email ) {
// you can override any items in this array to customise the email that is sent...
<?php
/*
* This is a rather simple and contrived example but it illustrates how this
* function can be used to temporarily change the post context.
*/
$alt_post_content = override_post_context( 1234, function ( $post ) {
ob_start();
// Do whatever you need here. The $post variable, in this scope, is the