Skip to content

Instantly share code, notes, and snippets.

View justintadlock's full-sized avatar
👨‍💻
Making Cool Things

Justin Tadlock justintadlock

👨‍💻
Making Cool Things
View GitHub Profile
@justintadlock
justintadlock / wp-recipe-card-pattern.html
Created March 18, 2022 01:50
WordPress block code for creating a recipe card pattern.
<!-- wp:group {"style":{"spacing":{"blockGap":"0px"},"border":{"style":"solid","width":"2px"}},"borderColor":"black"} -->
<div class="wp-block-group has-border-color has-black-border-color" style="border-style:solid;border-width:2px"><!-- wp:image {"align":"center","id":10590,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large"><img src="http://localhost/wp-content/uploads/2022/03/image-2-1024x605.png" alt="" class="wp-image-10590"/></figure>
<!-- /wp:image -->
<!-- wp:group {"style":{"spacing":{"padding":{"top":"2rem","right":"2rem","bottom":"2rem","left":"2rem"}}}} -->
<div class="wp-block-group" style="padding-top:2rem;padding-right:2rem;padding-bottom:2rem;padding-left:2rem"><!-- wp:heading -->
<h2>Veggie Pizza</h2>
<!-- /wp:heading -->
@justintadlock
justintadlock / book-card.html
Created April 2, 2022 01:01
Book card created with WordPress blocks.
<!-- wp:group {"align":"wide","style":{"color":{"background":"#384a5c"},"spacing":{"padding":{"top":"2rem","right":"2rem","bottom":"2rem","left":"2rem"}}},"textColor":"white"} -->
<div class="wp-block-group alignwide has-white-color has-text-color has-background" style="background-color:#384a5c;padding-top:2rem;padding-right:2rem;padding-bottom:2rem;padding-left:2rem"><!-- wp:media-text {"mediaId":6222,"mediaLink":"http://localhost/book-review/ff-book-cover/","mediaType":"image","mediaWidth":35} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile" style="grid-template-columns:35% auto"><figure class="wp-block-media-text__media"><img src="http://localhost/wp-content/uploads/2021/06/ff-book-cover.jpg" alt="" class="wp-image-6222 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:group {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-group"><!-- wp:heading -->
<h2>Lightning Bugs</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>A guy. A
@justintadlock
justintadlock / book-review-intro-card.html
Created April 2, 2022 02:02
Book review intro card using WordPress blocks.
<!-- wp:group {"align":"wide","style":{"color":{"background":"#384a5c"},"spacing":{"padding":{"top":"2rem","right":"2rem","bottom":"2rem","left":"2rem"}}},"textColor":"white"} -->
<div class="wp-block-group alignwide has-white-color has-text-color has-background" style="background-color:#384a5c;padding-top:2rem;padding-right:2rem;padding-bottom:2rem;padding-left:2rem"><!-- wp:media-text {"mediaId":6222,"mediaLink":"http://localhost/?attachment_id=6222","mediaType":"image","mediaWidth":40,"imageFill":false,"backgroundColor":"neutral-100"} -->
<div class="wp-block-media-text alignwide is-stacked-on-mobile has-neutral-100-background-color has-background" style="grid-template-columns:40% auto"><figure class="wp-block-media-text__media"><img src="http://localhost/wp-content/uploads/2021/06/ff-book-cover.jpg" alt="" class="wp-image-6222 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:group {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-group"><!-- wp:
@justintadlock
justintadlock / jt-format-color-preset.php
Last active September 20, 2022 19:27
Converts piped "preset" colors from global styles to their var() equivalents.
<?php
// Converts piped "preset" colors from global styles to their var() equivalents.
// Borrowed from `wp_render_elements_support_styles()`
function jt_format_color_preset( $color ) {
if ( strpos( $color, 'var:preset|color|' ) !== false ) {
$index = strrpos( $color, '|' ) + 1;
$name = substr( $color, $index );
$color = "var(--wp--preset--color--$name)";
@justintadlock
justintadlock / functions.php
Last active May 31, 2023 12:12
Classic style for the WordPress Gallery block
<?php
// CSS adjustments may be necessary for the caption, depending on your theme.
add_action( 'init', function() {
register_block_style( 'core/gallery', [
'name' => 'classic',
'label' => __( 'Classic', 'theme-textdomain' ),
'inline_style' => '.wp-block-gallery.is-style-classic.has-nested-images {
align-items: flex-start;
}
@justintadlock
justintadlock / ordered-3-col-grid.css
Last active July 5, 2023 18:37
Ordering first post to second position in three-column Query Loop grid
/* Set default to really high number for all posts. */
.wp-block-post-template-is-layout-grid .wp-block-post {
order: 999;
}
/* Set first post to "2" order. */
.wp-block-post-template-is-layout-grid .wp-block-post:first-of-type {
order: 2;
}
@justintadlock
justintadlock / webpack.config.js
Created July 19, 2023 21:23
Theme webpack config with multiple stylesheets
// ---------------------------------------------------------------------------------
// Be sure to install:
// npm install @wordpress/scripts glob path webpack-remove-empty-scripts --save-dev
// ---------------------------------------------------------------------------------
// WordPress webpack config.
const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );
// Plugins.
const RemoveEmptyScriptsPlugin = require( 'webpack-remove-empty-scripts' );
@justintadlock
justintadlock / pattern-query-grid-cover-stack.html
Created December 21, 2023 14:09
Query Loop pattern with stretched Stack block nested in Cover
<!-- wp:query {"queryId":0,"query":{"perPage":"7","pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false,"parents":[]},"align":"full","className":"pattern-post-grid-cover","layout":{"type":"constrained"}} -->
<div class="wp-block-query alignfull pattern-post-grid-cover"><!-- wp:group {"align":"full","style":{"spacing":{"padding":{"right":"var:preset|spacing|plus-3","left":"var:preset|spacing|plus-3","top":"var(\u002d\u002dtheme-spacing\u002d\u002dplus-3)","bottom":"var(\u002d\u002dtheme-spacing\u002d\u002dplus-3)"}}},"layout":{"type":"default"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--theme-spacing--plus-3);padding-right:var(--wp--preset--spacing--plus-3);padding-bottom:var(--theme-spacing--plus-3);padding-left:var(--wp--preset--spacing--plus-3)"><!-- wp:post-template {"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|minus-3"}},"className":"is-style-no-gap is-style-flex-grow is-style-fe
@justintadlock
justintadlock / jt-get-theme-colors.js
Created January 10, 2024 16:04
Gets the theme color palette from within a component in the editor (view the console for the palette).
import { registerPlugin } from '@wordpress/plugins';
import { useSetting } from '@wordpress/block-editor';
// Just creating a simple component so that we can use hooks.
registerPlugin( 'jt-log-theme-colors', {
render: () => {
// Use `useSettings()` in WP 6.5.
const palette = useSetting( 'color.palette.theme' );
// View the console to see colors.
@justintadlock
justintadlock / navigation.css
Last active January 11, 2024 14:52
Font Awesome icon for WordPress menu item.
/*
* I'm specifically targeting a URL here, but I'd recommend using a custom
* CSS class for the Navigation Link block instead.
*/
.wp-block-navigation-link a[href*="/my-account"]::before {
content: "";
display: inline-block;
width: 1em;
height: 1em;
margin-right: 0.5em;