Skip to content

Instantly share code, notes, and snippets.

@phlbnks
phlbnks / add_flagging_link_comment_crowd-control.php
Created October 14, 2015 07:52
Only show Crowd Control's "report" link when users logged in if "Users must be registered and logged in to comment" is set.
@phlbnks
phlbnks / mod.php
Created September 7, 2016 17:49
Modulus helper
<?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";
@phlbnks
phlbnks / mod_backgrounds.php
Last active September 7, 2016 19:25
Multiple modulus calculations for looping background colours
<?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';
@phlbnks
phlbnks / mod_rows.php
Last active September 7, 2016 19:34
Modulus example to create rows in a grid
<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;
@phlbnks
phlbnks / remove_bws_captcha.php
Created December 6, 2016 10:20
Remove BWS captcha for whitelisted IPs
/**
* 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';
}
@phlbnks
phlbnks / tinymce_garlicjs_compat.php
Created December 7, 2016 11:45
Make TinyMCE compatible with Garlic.js in Wordpress
/**
* 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){
@phlbnks
phlbnks / cpt_term_list.php
Created December 21, 2016 15:27
Get a list of terms from a shared taxonomy that are used on a particular post type only
<?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 ) ) {
@phlbnks
phlbnks / functions.php
Last active February 1, 2017 07:38
Show WordPress "authors" only the comments on their posts
<?php
/**
* Clone of wp_count_comments from WP4.2.
*/
function myblogs_count_comments( $post_id = 0 ) {
global $wpdb;
$post_id = (int) $post_id;
/**
* Filter the comments count for a given post.
@phlbnks
phlbnks / update_htpasswd.sh
Created July 26, 2017 08:52
Bash script to help manage .htpasswd files
#!/bin/bash
#
# Manage .htpasswd files
# Store script name for use in output.
me=$( basename $0 )
# Utility function for exiting.
@phlbnks
phlbnks / update_htaccess.php
Last active July 26, 2017 13:45
Example snippet showing how to update the WordPress .htaccess file programatically
<?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.