Skip to content

Instantly share code, notes, and snippets.

Phil Banks emirpprime

View GitHub Profile
@emirpprime
emirpprime / remove_valet.sh
Last active Dec 12, 2018
Sledgehammer removal of valet(+)
View remove_valet.sh
#!/usr/bin/env bash
valet stop
composer global remove laravel/valet
composer global remove weprovide/valet-plus
brew services stop --all
brew uninstall dnsmasq
sudo rm -rf /usr/local/etc/dnsmasq.conf
sudo rm -rf /usr/local/Cellar/dnsmasq
@emirpprime
emirpprime / remove_post_type_breadcrumb.php
Created May 17, 2018
Remove post type from Breadcrumb NavXT breadcrumbs when viewing Tag archives.
View remove_post_type_breadcrumb.php
<?php
/**
* Filter breadcrumbs to remove post archive when viewing Tag archives.
*/
add_action( 'bcn_after_fill', function( $bcn_breadcrumb_trail ){
// Bail early if not a tag archive.
if ( ! is_tag() ) {
return $bcn_breadcrumb_trail;
}
@emirpprime
emirpprime / exclude_posts_with_meta.php
Created Jan 31, 2018
Exclude posts with a custom meta value from search
View exclude_posts_with_meta.php
<?php
/**
* Exclude posts with 'fruit' custom meta field value of 'bananas' from site Search
*/
function cc_search_filter( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
if ( $query->is_search ) {
$query->set( 'meta_query',
array(
'relation' => 'OR',
@emirpprime
emirpprime / exclude_posts_with_term.php
Last active Jan 31, 2018
Exclude posts with a term in a taxonomy from search
View exclude_posts_with_term.php
<?php
/**
* Exclude posts with term 'bananas' from Search.
*/
function cc_search_filter( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
if ( $query->is_search ) {
$query->set(
'tax_query',
array(
@emirpprime
emirpprime / products_with_category.sql
Last active Apr 25, 2019
Select Product name, SKU, price and category from WordPress / WooCommerce with MySQL query
View products_with_category.sql
SELECT
wp_posts.post_title AS Product,
wp_postmeta1.meta_value AS SKU,
wp_postmeta2.meta_value AS Price,
GROUP_CONCAT( wp_terms.name ORDER BY wp_terms.name SEPARATOR ', ' ) AS ProductCategories
FROM wp_posts
LEFT JOIN wp_postmeta wp_postmeta1
ON wp_postmeta1.post_id = wp_posts.ID
AND wp_postmeta1.meta_key = '_sku'
LEFT JOIN wp_postmeta wp_postmeta2
@emirpprime
emirpprime / update_htaccess.php
Last active Jul 26, 2017
Example snippet showing how to update the WordPress .htaccess file programatically
View update_htaccess.php
<?php
/**
* Update .htaccess to whitelist logo when modified in platform settings.
*/
function cc_logo_htaccess() {
// Fire only on Platform Settings options page.
$screen = get_current_screen();
if ( 'cc-configurator_page_cc-settings' === $screen->id && ( $_POST['acf']['field_576c2a5137029'] || $_POST['acf']['field_576c2a9e3702a'] ) ) {
// Store files in an array.
@emirpprime
emirpprime / update_htpasswd.sh
Created Jul 26, 2017
Bash script to help manage .htpasswd files
View update_htpasswd.sh
#!/bin/bash
#
# Manage .htpasswd files
# Store script name for use in output.
me=$( basename $0 )
# Utility function for exiting.
View wp_cli.sh
#!/bin/bash -e
#
# Description:
# This will deploy WordPress in the current directory.
# Without modification it:
# - will configure basic security:
# - remove initial user created
# - deploy 6G firewall in .htaccess
# - attempt to prevent user enumeration in .htaccess
# - protect sensitive files and disallow executables in /wp-uploads
@emirpprime
emirpprime / time_ago.php
Last active Nov 30, 2018
Filter WordPress date functions to return relative time strings.
View time_ago.php
/**
* Filter the_time and get_the_date to return a relative string.
* Inspired by http://www.jasonbobich.com/2011/04/10/a-better-way-to-add-time-ago-to-your-wordpress-theme/
* Based on code from https://buddypress.trac.wordpress.org/browser/tags/2.8.2/src/bp-core/bp-core-functions.php#L1118
*
* @param string $formatted The formatted time.
* @param string $format The time format used.
* @param object $the_post Optional - current Post object.
* @return string Modified formatted time.
*/
@emirpprime
emirpprime / time_machine.php
Last active May 20, 2018
Filter the *displayed* time of posts in WordPress to move them into the past/future.
View time_machine.php
/**
* Filter the_time function to show posts as being from another date/time.
*
* @param string $formatted The formatted time.
* @param string $format The time format used.
* @return string Modified formatted time.
*/
function cc_time_machine( $formatted, $format ) {
$offset = get_option( 'cc_time_offset' ); // Offset in days, can be negative.
if ( $offset ) {
You can’t perform that action at this time.