Skip to content

Instantly share code, notes, and snippets.

View psorensen's full-sized avatar

Peter Sorensen psorensen

  • 10up
  • United States
View GitHub Profile
@psorensen
psorensen / image.js
Created February 29, 2024 13:47
Image placeholder component
const { MediaPlaceholder, InspectorControls } = wp.blockEditor;
const { Spinner, FocalPointPicker, PanelBody } = wp.components;
const { __ } = wp.i18n;
import { useMedia } from '../hooks/use-media';
/**
* Image Component with Placeholder
*
* @param {object} props Component Props
@psorensen
psorensen / debug.log
Created February 22, 2022 16:27
debug.log
0 verbose cli [
0 verbose cli '/Users/peter.sorensen/.nvm/versions/node/v16.9.1/bin/node',
0 verbose cli '/Users/peter.sorensen/.nvm/versions/node/v16.9.1/bin/npm',
0 verbose cli 'install'
0 verbose cli ]
1 info using npm@7.21.1
2 info using node@v16.9.1
3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 1ms
5 timing config:load:file:/Users/peter.sorensen/.nvm/versions/node/v16.9.1/lib/node_modules/npm/npmrc Completed in 1ms
@psorensen
psorensen / config.yml
Last active February 17, 2022 16:54
WP Env Failing on CirclCI workflow
## .circleci/config.yml
version: 2.1
executors:
node-executor:
docker:
- image: cimg/node:14.19.0-browsers
user: root
jobs:
release:
> next-wp@0.0.1 build-release /home/circleci/project
> npm install && composer install --no-dev -o && lerna run build-release
> next-wp@0.0.1 preinstall /home/circleci/project
> node -e "if(process.env.npm_execpath.indexOf('yarn') !== -1) throw new Error('Please use NPM for consistency.')"
> husky@4.2.5 install /home/circleci/project/node_modules/husky
@psorensen
psorensen / update-posts.bash
Created December 14, 2021 00:26
WP-CLI: Update a field based on query.
wp post update --post_excerpt='A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring' $(wp post list --post_type=page --format=ids)
@psorensen
psorensen / dfny21.json
Created December 2, 2021 19:29
DFNY21 Query Loop
{
"post_type": ["post", "sf_press_release", "sf_linked_content"],
"tax_query": [{
"taxonomy": "sf_collection",
"field": "slug",
"terms": "dreamforce-ny-21"
}]
}
@psorensen
psorensen / query-block-filter.js
Last active December 1, 2021 16:40
Extending query block to support custom taxonomies
import { TopicPicker } from './topic-picker';
const { createHigherOrderComponent } = wp.compose;
const { InspectorControls } = wp.blockEditor;
const { PanelBody, PanelRow } = wp.components;
const { addFilter } = wp.hooks;
const { __ } = wp.i18n;
const enableOnBlocks = ['core/query'];
@psorensen
psorensen / block-names-by-namespace.js
Created July 21, 2021 00:10
Get all block names of given namespace
wp.blocks.getBlockTypes().filter((block) => { return block.name.indexOf('jetpack') !== -1 }).map(o => o['name'])
// credit https://stackoverflow.com/a/37092497
@psorensen
psorensen / remote-request-caching.php
Created March 16, 2021 17:36
Caching a remote request in WordPress
<?php
/**
* Caching a remote response
*
* Related Tutorial: https://pippinsplugins.com/using-wp_remote_get-to-parse-json-from-remote-apis/
*/
// Psuedo Code to demonstrate overall approach
function cached_function() {
if ( has_cached_value() ) {
@psorensen
psorensen / termPicker.js
Last active December 5, 2020 17:54
GB Term Picker
import Select from 'react-select';
const { useSelect } = wp.data;
const { __ } = wp.i18n;
const TermPicker = (props) => {
const { taxonomy, onChange, label, attributes, attribute } = props;
const categories = useSelect((select) => select('core').getEntityRecords('taxonomy', taxonomy));
if (categories && categories.length) {