Skip to content

Instantly share code, notes, and snippets.

View cameronjonesweb's full-sized avatar
👨‍👦

Cameron Jones cameronjonesweb

👨‍👦
View GitHub Profile
@cameronjonesweb
cameronjonesweb / custom.sublime-keymap
Last active January 1, 2019 12:42
My personal sublime text key mappings
[
{ "keys": ["ctrl+shift+o"], "command": "prompt_open_folder" },
{ "keys": ["ctrl+pagedown"], "command": "next_view_in_stack" },
{ "keys": ["ctrl+pageup"], "command": "prev_view_in_stack" },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": ["alt+`"], "command": "toggle_terminus_panel" }
@cameronjonesweb
cameronjonesweb / clamp-js-recursive.js
Created December 18, 2018 00:10
Clamps all instances of a class
jQuery( document ).ready( function() {
jQuery( '.clampThis' ).each( function( index, element ) {
$clamp(
element,
{
clamp: 1,
useNativeClamp: false
}
);
});
@cameronjonesweb
cameronjonesweb / fix-vide-js-safari.js
Created November 30, 2018 06:18
Fixes Vide.js videos not autoplaying on Safari
/**
* @link https://github.com/vodkabears/Vide/issues/206
*/
function cameronjoneswebAutoPlayVideo( video ) {
if ( video.readyState === 4 ) {
video.play();
} else {
setTimeout( cameronjoneswebAutoPlayVideo, 100, video );
}
}
@cameronjonesweb
cameronjonesweb / jetpack-cookie-widget-without-widget-areas.php
Last active November 18, 2018 13:29
Display Jetpack's cookie notice on themes without a widget area
@cameronjonesweb
cameronjonesweb / class-att-example.php
Created November 14, 2018 01:56
Generate a class attribute from an array of classes and sanitises the classes
<?php
// Example.
$myclasses = [ 'my-class', 'some-other-class', '<script>console.log(hi);</script>' ];
printf(
'<div %1$s>%2$s</div>',
cameronjonesweb_generate_class_attribute( $myclasses ),
'My content'
);
@cameronjonesweb
cameronjonesweb / functions.php
Last active June 26, 2023 19:48
Takes custom classes out of the list item and adds them to the anchor element in WordPress menus. Perfect for font icons
<?php
add_filter( 'nav_menu_link_attributes','cameronjonesweb_move_custom_menu_item_class_to_anchor_element', 10, 4 );
add_filter( 'nav_menu_css_class', 'cameronjonesweb_remove_custom_menu_item_class_from_li_element', 10, 4 );
/**
* Get the custom item menu classes and add them to the anchor element
*
* @link https://cameronjonesweb.com.au/blog/how-to-move-the-custom-menu-item-classes-to-the-anchor-element/
* @param array $atts The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
@cameronjonesweb
cameronjonesweb / remove-current-page-parent.php
Created October 24, 2018 22:43
Removes the `current_page_parent` class from the blog page link when not viewing a blog related page
<?php
/**
* Removes the `current_page_parent` class from the blog page link when not viewing a blog related page
*
* @param array $classes The CSS classes that are applied to the menu item's `<li>` element.
* @param WP_Post $item The current menu item.
* @param stdClass $args An object of wp_nav_menu() arguments.
* @param int $depth Depth of menu item. Used for padding.
*/
function cameronjonesweb_remove_current_page_parent( $classes, $item, $args, $depth ) {
@cameronjonesweb
cameronjonesweb / add-field-type-to-class.php
Created October 4, 2018 06:17
Adds a class that defines the type of field to the <li> element in Gravity Forms
<?php
add_filter( 'gform_field_css_class', 'cameronjonesweb_add_field_type_to_class', 10, 3 );
/**
* Adds a class that defines the type of field to the li element in Gravity Forms
*
* @param string $css_class The existing CSS classes.
* @param GF_Field $field The field object.
* @param array $form The form object.
* @return string
@cameronjonesweb
cameronjonesweb / yoast-webmaster-tools-verification.php
Created October 1, 2018 03:52
Adds the Yoast SEO webmaster tools (and other sites) verification codes to all pages including the login page. This is helpful when running a membership site or similar that requires users being logged in to view the site.
<?php
add_action( 'init', 'cameronjonesweb_yoast_front_page_head' );
function cameronjonesweb_yoast_front_page_head() {
if ( class_exists( 'WPSEO_Frontend' ) ) {
add_action( 'wpseo_head', array( WPSEO_Frontend::get_instance(), 'webmaster_tools_authentication' ), 90 );
add_action( 'login_head', array( WPSEO_Frontend::get_instance(), 'webmaster_tools_authentication' ), 90 );
}
}
@cameronjonesweb
cameronjonesweb / create-index-php.sh
Last active October 7, 2020 23:40
Recursively creates an index.php file in all subfolders that don't include an index.php file
shopt -s globstar
for i in **; do
if [ -d "$i" ]; then
# update this line to include directories to ignore
if [[ "${i##/*}" != *"node_modules"* && "${i##/*}" != *"bower_components"* ]]; then
if [ ! -f "${i##/*}/index.php" ]; then
printf "Creating index file in %s\n" "${i##/*}"
printf "<?php\n// Silence is golden." > ${i##/*}/index.php
fi
fi