Skip to content

Instantly share code, notes, and snippets.

View audrasjb's full-sized avatar

Jb Audras audrasjb

View GitHub Profile
@audrasjb
audrasjb / accessible-external-links.php
Last active January 14, 2025 08:14
Filters blocks to automatically add aria-label to links that open in a new tab.
/**
* Filters the_content to automatically add unique ID to headings.
*
* Note: Change the regex to modify the related heading levels.
* Defaults to levels 2 and 3.
*/
function who_automatic_heading_ids( $content ) {
$pattern = "~<h(2|3)[^>]*>(.*?)</h(2|3)>~";
$content = preg_replace_callback( $pattern, function ( $matches ) {
$title = $matches[2];
@audrasjb
audrasjb / contextual_body_classes.php
Last active December 23, 2024 05:11
Contextual body classes to help identify browsers and devices types within WordPress front-end
<?php
/**
* Adds <body> custom classes relative to browsers and device types.
*
* Note: These classes are obtained via WordPress Core Globals and via the wp_is_mobile
* function which both rely on the user agent. wp_is_mobile() is obviously NOT a substitute
* to CSS media queries, but may be used for device specific features or debugging.
*
* @see https://developer.wordpress.org/apis/global-variables/#browser-detection-booleans
* @see https://developer.wordpress.org/reference/functions/wp_is_mobile/
@audrasjb
audrasjb / gf-available-entries
Last active December 20, 2024 10:19
Gravity Forms: Retrieves how much available entries are available for a given form
<?php
/**
* Retrieves how much available entries are available for a given form.
*
* @param int|false $form_id The ID of the form.
*/
function jba_display_available_seats( $form_id = false ) {
if ( ! $form_id ) { return; }
$form = GFAPI::get_form( $form_id );
@audrasjb
audrasjb / jba-force-language-attribute.php
Last active November 23, 2022 18:04
Force fr-CH language attribute on the HTML tag. Made for Jeff Legras (question asked in WordPress Academy Facebook group)
<?php
/**
* Plugin Name: Filter language attribute to force fr-CH.
* Author: Jb Audras
* Author URI: https://jeanbaptisteaudras.com
* License: GPLv2 or later
* Version: 1.0.0
*/
function jba_language_attributes() {
@audrasjb
audrasjb / functions.php
Last active October 17, 2022 07:32
Hide admin bar in certain condition – for Christophe Glaudel (WP Academy Facebook group)
<?php
/*
* Removes admin bar on front-end for everyone except admins.
* @audrasjb
*/
function jba_remove_admin_bar( $show_admin_bar ) {
if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
$show_admin_bar = false;
}
return $show_admin_bar;
@audrasjb
audrasjb / redirect-authors
Last active September 28, 2022 21:07
Plugin created for Philippe from the WordPress France Entraide Facebook group.
<?php
/**
* Plugin Name: Redirect Authors
* Description: Redirect authors to a specific front-end page with their posts.
* Author: audrasjb
* Author URI: https://jeanbaptisteaudras.com
* License: GPLv2 or later
* Version: 1.0.0
*/
<?php
function declare_geo_shortcodes() {
add_shortcode( 'geoLink', 'geo_shortcode_link' );
add_shortcode( 'geoMap', 'geo_shortcode_map' );
}
add_action( 'init', 'declare_geo_shortcodes' );
function geo_shortcode_link() {
$html = "<link rel='stylesheet' href='https://unpkg.com/[email protected]/dist/leaflet.css'
integrity='sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ=='
@audrasjb
audrasjb / functions.php
Last active June 9, 2022 13:42
Hide post date for specific categories in Twenty Seventeen (asked by Marie-Christine Rcd on WordPress Academy Facebook group – June 9, 2022)
<?php
function jba_hide_posted_on() {
if ( in_category( array( 'ma-categorie', 'une-autre-categorie' ) ) ) :
?>
<style>.posted-on { display: none; }</style>
<?php
endif;
}
add_action( 'wp_head', 'jba_hide_posted_on' );
@audrasjb
audrasjb / functions.php
Last active February 2, 2022 12:44
ADEME – Génération d'un flux RSS personnalisé sur WordPress
<?php
function ademe_test_feed_init() {
/*
* Génère un flux personnalisé et détermine une fonction d'affichage.
*
* Le premier paramètre indique l'url du flux généré.
* Le second paramètre détermine la fonction d'affichage associée.
*/
add_feed( 'ademe_press_feed_taxo_theme', 'ademe_press_feed_taxo_theme_response' );
}