Skip to content

Instantly share code, notes, and snippets.

I'd have more time for coding if I wasn't a parent!

Cameron Jones cameronjonesweb

I'd have more time for coding if I wasn't a parent!
View GitHub Profile
cameronjonesweb / jetpack-cookie-widget-without-widget-areas.php
Last active Nov 18, 2018
Display Jetpack's cookie notice on themes without a widget area
View jetpack-cookie-widget-without-widget-areas.php
cameronjonesweb / class-att-example.php
Created Nov 14, 2018
Generate a class attribute from an array of classes and sanitises the classes
View class-att-example.php
// Example.
$myclasses = [ 'my-class', 'some-other-class', '<script>console.log(hi);</script>' ];
'<div %1$s>%2$s</div>',
cameronjonesweb_generate_class_attribute( $myclasses ),
'My content'
cameronjonesweb / functions.php
Last active Jan 9, 2020
Takes custom classes out of the list item and adds them to the anchor element in WordPress menus. Perfect for font icons
View functions.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
* @param array $atts The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
cameronjonesweb / remove-current-page-parent.php
Created Oct 24, 2018
Removes the `current_page_parent` class from the blog page link when not viewing a blog related page
View remove-current-page-parent.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 / add-field-type-to-class.php
Created Oct 4, 2018
Adds a class that defines the type of field to the <li> element in Gravity Forms
View add-field-type-to-class.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 / yoast-webmaster-tools-verification.php
Created Oct 1, 2018
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.
View yoast-webmaster-tools-verification.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 /
Last active Sep 27, 2018
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
View pricing-tables-for-easy-digital-downloads-free-downloads-modal.php
add_action( 'pricing_tables_for_edd_footer_end', 'cameronjonesweb_free_downloads_link_to_modal', 9 );
* Changes the pricing tables link to use the modal if it's a free download
* @param array $args User defined data for the pricing table.
function cameronjonesweb_free_downloads_link_to_modal( $args ) {
if ( class_exists( 'EDD_Free_Downloads' ) ) {
cameronjonesweb / edd-account-login.php
Created Aug 8, 2018
Update Easy Digital Downloads sites to use an account page to login rather than wp-login.php
View edd-account-login.php
add_filter( 'edd_settings_general', 'cameronjonesweb_edd_login_page' );
add_filter( 'login_url', 'cameronjonesweb_use_edd_login_page', 10, 3 );
* Adds an additional page to the EDD pages settings
* Make sure the [edd_profile_editor] or [edd_login] shortcode is on this page.
* @param array $settings The array of settings.
cameronjonesweb / admin-menu-customizer-link.php
Last active Sep 28, 2018
Replaces a settings subpage link with a link to the customizer or external URL
View admin-menu-customizer-link.php
You can’t perform that action at this time.