Skip to content

Instantly share code, notes, and snippets.

@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'
@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 / bootstrap-link-pages.php
Created March 24, 2016 03:18
Bootstrap replacement for WordPress wp_link_pages() function.
@dboutote
dboutote / default-post-thumb.php
Created July 26, 2015 15:39
Create/Load a default post thumbnail (WordPress theme)
<?php
/**
* Default Img for post thumbnails
*
* @param $file_name_new (string) Name of the newly-created file
* @param $file_name_orig (string) Filename of the original default image
* @param $post_id (int) ID of the associated Post
* @param $size (array) Width/height of cropped thumbnail
* @param $class (string) Optional class attribute for output image
<?php
/**
* Add dynamic classes to the WP body_class() function
*
* updated: 01/06/16
*/
function _dbdb_body_classes( $classes ) {
global $wp_query, $post;
// if it's the front page of the site
@dboutote
dboutote / body_id.php
Last active January 9, 2019 09:02
Add an ID Attribute to the WordPress Body Element: http://darrinb.com/adding-a-custom-id-to-the-body-element-in-wordpress/
<?php
/**
* Create a dynamic id on body elements
*
*/
function get_body_id( $id = '' ) {
global $wp_query;
// Fallbacks
if ( is_front_page() ) $id = 'front-page';
if ( is_home() ) $id = 'blog';
@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 / 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’ );