Skip to content

Instantly share code, notes, and snippets.

View sethrubenstein's full-sized avatar

Seth Rubenstein sethrubenstein

View GitHub Profile
@sethrubenstein
sethrubenstein / get-color-values-from-theme-json.php
Created March 26, 2023 15:53
Provides an example of how to extract your color palette from a theme.json file and create styles dynamically.
<?php
function generate_css_from_theme_settings() {
if ( !function_exists('wp_get_global_settings') ) {
return new WP_Error('missing_function', 'wp_get_global_settings() is missing');
}
$colors = wp_get_global_settings();
$colors = $colors['color']['palette']['theme'];
<?php
/**
* WP_HTML_Table_Processor
* @author Seth Rubenstein
*/
/**
* Pass in a table and get back an array of the header, rows, and footer cells quickly and effeciently.
*
* The WP_HTML_Tag_Processor bookmark tree navigation is heavily cribbed from WP_Directive_Processor class https://github.com/WordPress/block-interactivity-experiments/pull/169/files#diff-ad36045951e27010af027ae380350ae4b07b56a659a3127b40b7967b2308d5bc
q1_by_sex = svyby(~q1, #variable to estimate
~sex, #subgroup variable
design = Apr17_design,
FUN = svymean, #function to use on each subgroup
keep.names = FALSE #does not include row.names
#for subgroup variable
)
knitr::kable(q1_by_sex, digits = 2)
@sethrubenstein
sethrubenstein / cf-invalidate.php
Created August 15, 2017 20:11 — forked from claylo/cf-invalidate.php
How to invalidate items in AWS CloudFront
<?php
/**
* Super-simple AWS CloudFront Invalidation Script
*
* Steps:
* 1. Set your AWS access_key
* 2. Set your AWS secret_key
* 3. Set your CloudFront Distribution ID
* 4. Define the batch of paths to invalidate
* 5. Run it on the command-line with: php cf-invalidate.php
@sethrubenstein
sethrubenstein / Customfile
Created January 4, 2017 18:03 — forked from lkwdwrd/Customfile
VVV Customfile for Hyper-V compatibility
# Hyper-V only overrides
config.vm.provider :hyperv do |v, override|
# Update memory and CPUs to match VVV config.
v.memory = 1024
v.cpus = 1
# Use a Hyper-V compatible base box
override.vm.box = "ericmann/trusty64
# Change all the folder to use SMB instead of Virtual Box shares
/**
* Get or update post meta via the WordPress REST API
*
* @param int $post_id Post ID to get meta for.
* @param bool|string $json_url Optional. Base URL for API. If false will use current site's API URL.
* @param array $headers Headers to use in request. Must at least include authorization.
* @param bool $update Optional. If true updates meta value, if false just returns current values.
* @param bool|array $meta_data Optional, but required if updating. Array of key => value for meta ID being updated.
* @param bool|int $meta_id Optional. ID of meta key to update. If not specified and updating an additional HTTP request is required to find it.
*
@sethrubenstein
sethrubenstein / acf-auto-export.php
Last active May 19, 2016 03:31 — forked from raideus/acf-auto-export.php
Changed get_template_directory to get_stylesheet_directory to facilitate child themes
<?php
/**
* Automated PHP export for Advanced Custom Fields
*
* Export is initiated whenever an admin publishes a new field group
* or saves changes to an existing field group.
*
* Place this code in your theme's functions.php file.
*
*/
@sethrubenstein
sethrubenstein / prepare-commit-msg.sh
Created March 28, 2016 19:49 — forked from bartoszmajsak/prepare-commit-msg.sh
How to automatically prepend git commit with a branch name
#!/bin/bash
# This way you can customize which branches should be skipped when
# prepending commit message.
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(master develop test)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
@sethrubenstein
sethrubenstein / seths-atom-packages.md
Last active February 16, 2016 23:39
My Current Atom Setup

Seth's Current Atom Packages

Functionality

  1. dockblockr - a helper package for writing documentation.
  2. git-log - graphs your git commits.
  3. git-plus - do git things in Atom without terminal.
  4. grunt-runner - run grun tasks from Atom
  5. language-nginx - adds Nginx syntax/coloring support.
  6. merge-conflicts - Resolve git conflicts visually in Atom.
  7. react (by orktes) - adds React.js JSX langauge support, snippets, auto completion.
@sethrubenstein
sethrubenstein / Customfile
Created January 14, 2016 20:21
Pew VVV Customfile
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 4
end