Skip to content

Instantly share code, notes, and snippets.

View joelstransky's full-sized avatar

Joel Stransky joelstransky

View GitHub Profile
@joelstransky
joelstransky / functions::custom_field_render.php
Created December 1, 2017 17:19
Alter Advanced Custom Field rendering in admin
<?php
/*
* This snippet is from a project where I used an ACF Options gallery field to collect a set of icons.
* This fields data was then used to replace a radio field's options with the actual icons.
*/
class Special_Excerpt_Icon {
function __construct() {
// filter load_field on all 'radio' fields
add_filter('acf/load_field/type=radio', array($this, 'on_acf_load_radio_field' ) );
}
@joelstransky
joelstransky / functions::get_connected_terms.php
Created June 9, 2017 19:53
Wordpress: Create relationship between two taxonomy's using ACF
<?php
$all_tax_a_terms = get_terms( array( 'taxonomy' => 'taxonomy_a', 'hide_empty' => false) );
foreach ($all_tax_a_terms as $a_term) {
$b_terms_set_to_a_term = get_terms( array(
'taxonomy' => 'taxonomy_b',
'meta_key' => 'acf-key-for-taxonomy-b',
'meta_value' => $a_term->slug,
'hide_empty' => false )
);
}
@joelstransky
joelstransky / functions::paginate_links_as_bootstrap.php
Last active May 25, 2017 20:10
Wraps WordPress paginate_links data in Twitter bootstrap pagination component
<?php
/**
* This is a temporary fix needed to repair the issue mentioned here:
* https://core.trac.wordpress.org/ticket/40090
*/
add_filter( 'wp_nav_menu_args', 'replace_default_menu_walker', 10, 1 );
function replace_default_menu_walker( $args ) {
if ( empty($args['walker']) )
$args['walker'] = new Walker_Nav_Menu_40090;
return $args;
@joelstransky
joelstransky / write-log.php
Created March 8, 2017 00:02
Write string, array or objects to log in php
<?php
if ( ! function_exists('write_log')) {
function write_log ( $log ) {
if ( is_array( $log ) || is_object( $log ) ) {
error_log( print_r( $log, true ) );
} else {
error_log( $log );
}
}
}
<?php
class F6_DRILL_MENU_WALKER extends Walker_Nav_Menu
{
/*
* Add vertical menu class
*/
function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"vertical menu\">\n";
@joelstransky
joelstransky / main.scss
Last active December 16, 2016 00:27
Sticky footer for WordPress
/**
* https://philipwalton.com/articles/normalizing-cross-browser-flexbox-bugs/
* 1. Avoid the IE 10-11 `min-height` bug.
* 2. Set `flex-shrink` to `0` to prevent Chrome, Opera, and Safari from
* letting these items shrink to smaller than their content's default
* minimum size.
*/
.Site {
display: flex;
flex-direction: column;
@joelstransky
joelstransky / bootstrap3-fixed-width-columns-mixins.scss
Created December 14, 2016 23:52
Bootstrap3 Fixed Width Columns mixin
// demo: http://codepen.io/JoelStransky/pen/VKPVAG
// breakpoint list ('column type', 'screen breakpoint', 'container width @ break point')
$breakpoints: ( ('xs', $screen-xs, $screen-xs), ('sm', $screen-sm, $container-sm), ('md', $screen-md, $container-md), ('lg', $screen-lg, $container-lg) );
@mixin make-fixed-grid() {
@each $item in $breakpoints {
@media (min-width: #{nth($item, 2)} ) {
// background: red;
@include make-fixed-grid-columns( $grid-columns, nth($item, 1), width, nth($item, 3) );
}
@joelstransky
joelstransky / get_field_object.php
Last active December 8, 2016 21:55
Display a single ACF field form view
<?php $field = get_field_object('field_123a456b78c90'); ?>
@joelstransky
joelstransky / step_1.php
Last active December 8, 2016 21:23
Inject non-acf fields during the rendering of acf-form
<?php
add_filter('acf/prepare_field', 'acf_prepare_field__inject_form_fields');
function acf_prepare_field__inject_form_fields( $field ) {
if ( ! is_admin() ) {
// look for the field AFTER where we want to inject something
// I used a switch to make it easier to react to multiple insertion points
switch ($field['key']) {
case 'field_123a456b78c90':
acf_form_inject__excerpt();
break;