Skip to content

Instantly share code, notes, and snippets.

@dboutote
dboutote / date-range-query.php
Created September 9, 2020 21:31
Custom WP_Query to get posts from a specific date range from a range of years.
<?php
$dates = ['relation'=>'OR'];
$x = 1;
while( $x <= 5 ) :
$currentDate = new DateTime();
$previous_date = $currentDate->sub( new DateInterval( "P{$x}Y" ) );
$previous_year = $previous_date->format('Y');
$currentDate = new DateTime();
@dboutote
dboutote / query-by-meta.php
Created June 11, 2018 16:30
Querying content by a meta key
<?php
$args = array(
'meta_key' => '_affiliatedCompany',
'meta_value' => $companyID,
'post_type' => 'article',
'posts_per_page' => 20,
);
$r = new WP_Query( $args );
@dboutote
dboutote / disable-custom-rest-routes.php
Created April 6, 2018 17:09
Filter the generated REST routes by filtering the show_in_rest arg in register_post_type function
<?php
function dbdb_unset_rest_routes( $args, $post_type ) {
$allowed_post_types = array( 'page', 'post', 'company', 'job' );
$allowed_post_types = apply_filters( 'dbdb_unset_rest_routes_types', $allowed_post_types );
if( in_array( $post_type, $allowed_post_types ) ){
return $args;
} else {
$args['show_in_rest'] = 0;
@dboutote
dboutote / tect-bases-rewrite.php
Created January 25, 2018 20:30
Fix The Events Calendar 4.6 update for custom url slug
<?php
function filter_tribe_bases( $bases = array() ){
$rewriteSlug = sanitize_title( Tribe__Settings_Manager::get_option( ‘eventsSlug’, ‘events’ ) );
$bases[‘archive’] = array( $rewriteSlug );
return $bases;
}
add_filter( ‘tribe_events_rewrite_base_slugs’, ‘filter_tribe_bases’ );
@dboutote
dboutote / list-height-toggle.js
Created January 13, 2018 23:12
Toggle the height of Unordered or Ordered Lists
(function($) {
$( document ).ready(function() {
var $sideNavs = $();
$.fn.toggleHeight = function( options ){
if( 'ontouchstart' in document ) return this;
@dboutote
dboutote / rest-endpoints-filter.php
Last active June 14, 2022 16:47
Filtering the WP REST API endpoints.
<?php
add_action( 'rest_endpoints', function( $endpoints ){
if( isset( $endpoints[ '/wp/v2/posts' ] ) ){
foreach( $endpoints[ '/wp/v2/posts' ] as &$post_endpoint ){
if( ! empty( $post_endpoint[ 'methods' ] ) && 'GET' == $post_endpoint[ 'methods' ] ){
$post_endpoint[ 'args' ][ 'type' ] = array(
'description' => 'Post types',
'type' => 'array',
'required' => false,
'default' => 'post'
<ul>
<?php
global $post;
$args = array( 'numberposts' => 5, 'post_type' => 'article' );
$myposts = get_posts( $args );
foreach( $myposts as $post ) :
setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php the_excerpt();?>
@dboutote
dboutote / instagram-scraper.php
Created February 15, 2017 18:46
Quick and dirty Instagram scraper
<?php
/**
* Instagram scraper
*
* Quick and dirty Instragram scraper for displaying a Instagram feed.
*
* Based on : https://gist.github.com/cosmocatalano/4544576
*
* @param string $username Instagram user account
@dboutote
dboutote / shortcode.js
Created October 20, 2016 04:37
TinyMCE Shortcode Button for WordPress
jQuery(document).ready(function($) {
tinymce.create( 'tinymce.plugins.dbdb_social_button', {
/**
* Initializes the plugin, this will be executed after the plugin has been created.
* This call is done before the editor instance has finished its initialization so use the onInit event
* of the editor instance to intercept that event.
*
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
@dboutote
dboutote / filter_acatw_allowed_taxonomies.php
Created August 27, 2016 15:35
Filtering Allowed Taxonomies in the Advanced Categories Widget
<?php
/**
* This will ADD a custom taxonomy to the allowed taxonomies used by the widget
* */
function filter_acatw_allowed_taxonomies( $taxonomies ){
$taxonomies['project_category']= 'Project Categories';
return $taxonomies;
}