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!
Block or report user

Report or block cameronjonesweb

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
@cameronjonesweb
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
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
<?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 Nov 1, 2018
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
<?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
* @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 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
<?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 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
<?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 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
<?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 Sep 27, 2018
Recursively creates an index.php file in all subfolders that don't include an index.php file
View create-index-php.sh
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
View pricing-tables-for-easy-digital-downloads-free-downloads-modal.php
<?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
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
<?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
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.