Skip to content

Instantly share code, notes, and snippets.

View markhowellsmead's full-sized avatar

Mark Howells-Mead markhowellsmead

View GitHub Profile
@markhowellsmead
markhowellsmead / PatternOverrides.php
Created September 25, 2026 12:56
Extends synced pattern overrides to additional blocks.
<?php
namespace SayHello\Theme\Controller;
/**
* Extends synced pattern overrides to additional blocks.
*
* core/media-text: allows the media (image or video) and the focal point
* to be overridden in each instance of a synced pattern. Enable overrides
* on the Media & Text block in the pattern editor (Advanced › Enable overrides).
@markhowellsmead
markhowellsmead / media-text-inner-padding.js
Last active September 25, 2026 12:55
Add inner padding and block gap to the core/media-text block
/**
* Inner padding and block gap for the core/media-text block.
*
* An additional "Inner dimensions" panel is added to the Styles tab. It mirrors the
* padding and block spacing controls in the core Dimensions panel.
*
* - Inner padding: shown if spacing.padding is enabled for core/media-text in theme.json.
* Stored in the shtInnerPadding attribute and applied to .wp-block-media-text__content.
* - Block gap: shown if spacing.blockGap is enabled for core/media-text in theme.json.
* Stored in the shtBlockGap attribute and applied as gap to the block element. Core's
@markhowellsmead
markhowellsmead / download_jimdo_images.js
Last active January 30, 2025 13:14
Download full-size images from a Jimdo page containing galleries
/**
* Run this in the browser's developer console.
* Provided with no guarantees! Worked perfectly when published.
*
* mark-at-sayhello.ch / 30.1.2025
*/
(()=> {
let galleryCounters = {}; // Stores counters for each gallery legend
@markhowellsmead
markhowellsmead / block-bindings.php
Created November 14, 2024 11:40
Example usage of block bindings
<?php
register_block_bindings_source('my-custom-prefix/current-year', [
'label' => __('Current year', 'my-custom-prefix'),
'get_value_callback' => 'my_custom_prefix_current_year',
]);
function my_custom_prefix_current_year()
{
@markhowellsmead
markhowellsmead / Block.php
Created June 5, 2024 13:11
Add a do_action using the render_block filter
<?php
namespace PT\MustUse\Blocks\CoreEmbed;
class Block
{
public function run()
{
add_filter('render_block_core/embed', [$this, 'render'], 10, 2);
}
@markhowellsmead
markhowellsmead / update-post-template.php
Last active August 9, 2023 19:20
Update post template for posts matching a certain criteria
<?php
$args = [
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'any',
'meta_query' => [
[
'key' => 'hide_thumbnail',
'compare' => 'EXISTS'
@markhowellsmead
markhowellsmead / index.js
Last active March 9, 2023 15:12
First example of GitHub Copilot. Gets posts from the WordPress REST API and appends them to the postContainer.
// get the current site's REST API base url
const restApiBaseUrl = wpApiSettings.root;
// get the element with the class name '.posts-container' from the document
const postsContainer = document.querySelector('.posts-container');
// use restApiBaseUrl to get all of the posts from the rest api in a recursive async function. wrap the function in an IIFE.
// append the posts to the posts container as objects. add a class name to each element using the classNameBase 'shp-my-posts' and the post id.
(async function getPosts() {
// stop processing if there is no posts container
@markhowellsmead
markhowellsmead / updatelive.sh
Created April 21, 2022 12:35
Bash script with coloured messaged
#!/bin/bash
function cecho(){
RED="\033[0;31m"
GREEN="\033[0;32m"
YELLOW="\033[0;33m"
NC="\033[0m" # No Color
printf "${!1}\n${2} ${NC}"
}
@markhowellsmead
markhowellsmead / PostFeaturedImage.php
Created March 11, 2022 17:29
WordPress Gutenberg: add preset size selector to core Post Featured Image block
<?php
namespace SayHello\Theme\Block;
use WP_Block;
/**
* Core Post Featured Image block
* From plugin
*
@markhowellsmead
markhowellsmead / PostMoreSameCategory.php
Last active March 9, 2022 09:42
Gutenberg: server side render with editable title
<?php
namespace SayHello\Theme\Block;
use WP_Term;
/**
* More posts from same category as current post
*
* @author Say Hello GmbH <hello@sayhello.ch>