Skip to content

Instantly share code, notes, and snippets.

Phil Banks emirpprime

Block or report user

Report or block emirpprime

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@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 ) {
@emirpprime
emirpprime / wp_helper.sh
Last active Aug 5, 2018
Utility script to help manage WordPress sites on an EasyEngine server (but not limited to EE)
View wp_helper.sh
#!/bin/bash
# Help / usage info.
USAGE=$'WordPress Helper script, built for EasyEngine but should be widely compatible.\nWithout any args it will search /var/www/ for WordPress sites, loop over them in alphabetical order and check for core and plugin updates.\nAlso accepts:\n\t--sites=[space seperated list of site paths relative to /var/www]\n\t--update=[plugins|wp|all].'
# Die function for exiting on errors.
die () {
echo "${1}, exitting..." >&2 ; echo ; exit 1
}
@emirpprime
emirpprime / cpt_term_list.php
Created Dec 21, 2016
Get a list of terms from a shared taxonomy that are used on a particular post type only
View cpt_term_list.php
<?php ?>
<label for="filter-country">Country</label>
<select id="filter-country" class="form-control" name="country">
<option selected="" value="">All countries</option>
<?php
if ( false === ( $cptcountries = get_transient( 'cpt_countries' ) ) ) {
global $wpdb;
$cpt_countries = $wpdb->get_col( "select distinct term_taxonomy_id from $wpdb->term_relationships where object_id in ( select ID from $wpdb->posts where post_type='cpt' )" );
$cptcountries = get_terms( array( 'taxonomy' => 'country', 'include' => $cpt_countries ) );
if ( ! empty( $cptcountries ) && ! is_wp_error( $cptcountries ) ) {
@emirpprime
emirpprime / tinymce_garlicjs_compat.php
Created Dec 7, 2016
Make TinyMCE compatible with Garlic.js in Wordpress
View tinymce_garlicjs_compat.php
/**
* Add Garlic.js compatability to TinyMCE on front-end
*
* @param array $settings TinyMCE settings array.
* @return array Modified TinyMCE settings array.
*/
function mytheme_tinymce_garlicjs_compat( $settings ) {
if ( ! is_admin() ) {
$settings['setup'] = "function(editor) {
editor.on('change keyup', function(e){
@emirpprime
emirpprime / remove_bws_captcha.php
Created Dec 6, 2016
Remove BWS captcha for whitelisted IPs
View remove_bws_captcha.php
/**
* Check if a given ip is in a network https://gist.github.com/tott/7684443
* @param string $ip IP to check in IPV4 format eg. 127.0.0.1
* @param string $range IP/CIDR netmask eg. 127.0.0.0/24, also 127.0.0.1 is accepted and /32 assumed
* @return boolean true if the ip is in this range / false if not.
*/
function ip_in_range( $ip, $range ) {
if ( strpos( $range, '/' ) == false ) {
$range .= '/32';
}
@emirpprime
emirpprime / mod_backgrounds.php
Last active Sep 7, 2016
Multiple modulus calculations for looping background colours
View mod_backgrounds.php
<?php
// $posts is some content to loop over and output. Perhaps 28 items.
// We want raindow coloured boxes so loop over 7 possible colours.
$posts_count = 0;
foreach ( $posts as $post ) :
$colour = '';
if ( $posts_count % 7 == 0 ) {
$colour = 'red';
} elseif ( $posts_count % 7 == 1 ) {
$colour = 'orange';
@emirpprime
emirpprime / mod_rows.php
Last active Sep 7, 2016
Modulus example to create rows in a grid
View mod_rows.php
<div class="row">
<?php
// $posts is some content to loop over and output.
$posts_count = 0;
foreach ( $posts as $post ) :
echo $post;
if ( $posts_count % 3 == 2 ) : // Fires every 3rd item since we are counting from 0. ?>
</div><div class="row>
<?php endif;
View mod.php
<?php
echo '<pre>';
for ($j = 1; $j < 10; $j++) {
for ($k = 0; $k < $j; $k++) {
echo "\n\$i % $j == $k: \n";
for ($i = 0; $i < 10; $i++) {
echo "$i : ";
if ($i % $j == $k) {
echo "TRUE";
@emirpprime
emirpprime / gform_clamav.php
Created Aug 8, 2016
Scan Gravity Forms uploads with ClamAV - WordPress
View gform_clamav.php
/**
* Scan Gravity Forms uploads with ClamAV
* Based on 'Custom Scan AV function by Kris Chase'
* https://krischase.com/detect-and-prevent-malware-in-gravity-forms-file-upload-with-php-clamav/
* Requires clamav and php-clamav installed and enabled
*/
function myfunc_uploads_clamav( $validation_result ) {
if ( $_FILES ) {
$form = $validation_result['form'];
@emirpprime
emirpprime / add_flagging_link_comment_crowd-control.php
Created Oct 14, 2015
Only show Crowd Control's "report" link when users logged in if "Users must be registered and logged in to comment" is set.
View add_flagging_link_comment_crowd-control.php
You can’t perform that action at this time.