Skip to content

Instantly share code, notes, and snippets.

View sybrew's full-sized avatar

Sybre Waaijer sybrew

View GitHub Profile
@sybrew
sybrew / acf-tsf-term-description.php
Last active February 17, 2024 15:19
Gets a custom term field from ACF to override TSF's generated description.
<?php
// Don't include the PHP opening tag if PHP is already open.
add_filter( 'the_seo_framework_generated_description', 'my_tsf_generated_description', 10, 2 );
/**
* @param string $desc The generated description.
* @param array|null $args The query arguments. Contains 'id', 'tax', 'pta', and 'uid'.
* Is null when the query is auto-determined.
* @return string The overwritten description.
@sybrew
sybrew / tsf-meta-render-data.php
Last active November 22, 2023 17:50
TSF meta render data filter
<?php
// This works on TSF v5.0 and later.
add_filter(
'the_seo_framework_meta_render_data',
function ( $tags_render_data ) {
// Remove og:description:
unset( $tags_render_data['og:description'] );
@sybrew
sybrew / wp-remove-fbclid.php
Last active August 29, 2023 08:12
Removes the fbclid query parameter from the URL when someone visits your site.
<?php
// Don't include the PHP opening tag if PHP is already open in the file.
add_action(
'parse_request',
function() {
if ( isset( $_GET['fbclid'] ) ) {
wp_safe_redirect( home_url( remove_query_arg( 'fbclid' ) ), 301 );
@sybrew
sybrew / test-php-timer.js
Created August 17, 2023 00:01
TSF's performance testing script.
// Run this script in the browser console, wait for it to complete and show you the testing results.
// You must use the following plugin to load the timings... https://gist.github.com/sybrew/f72f58394e62447d9bad61fdcc0bcb1b
// Config the constants below
const doLoggedIn = false; // whether testing logged in or out.
// NOTE: You must manually log in and out in the browser you're testing this!
const iterations = 100; // Set iterations. Fewer than 100/50 with/without Opcache is inaccurate.
const tick = false; // Whether to display every timestamp recorded on tick. Noisy.
@sybrew
sybrew / htmltimerdump.php
Created August 17, 2023 00:00
Dumps HTML timer in meta id=htmltimerdump as late as possible for you to snatch via JS.
<?php
/**
* Plugin Name: HTML Timer Dump
* Description: Dumps HTML timer in meta id=htmltimerdump as late as possible for you to snatch via JS.
* Author: Sybre Waaijer
* Author URI: https://cyberwire.nl/
* Version: 1.0.0
* License: GLPv3
*
* @package HTMLTimerDump
@sybrew
sybrew / polylang-tsf-pta.php
Created June 10, 2023 22:53
Polylang Post Type Archive overwrite for TSF
<?php
// Request: https://wordpress.org/support/topic/the-seo-framework-polylang-post-type-archive-settings-not-translatable/
add_filter( 'the_seo_framework_post_type_archive_meta', 'my_custom_seo_framework_post_type_archive_meta', 10, 2 );
/**
* Filters The SEO Framework post type archive meta based on Polylang's language.
*
* @param array $meta The current post type archive meta : {
* 'doctitle' => string
@sybrew
sybrew / hide-tsf-from-all-but-super-admin.php
Created June 1, 2023 13:57
Hides TSF's admin interface from everyone but the Super Administrator (capability manage_network, or manage_options on non-multisite).
<?php
/**
* Plugin Name: TSF Headless Mode for non-super-admin.
* Plugin URI: https://theseoframework.com/
* Description: Enables Headless Mode for The SEO Framework in the admin area for non-admins.
* Version: 1.0.0
* Author: Sybre Waaijer
* Author URI: https://theseoframework.com/
* License: GPLv3
*/
@sybrew
sybrew / remove-tsf-articles-output.php
Created March 7, 2023 23:37
Disables output for Articles
<?php
// Don't include the PHP tag if PHP is already running...
add_filter( 'the_seo_framework_articles_data', '__return_empty_array' );
<?php
// don't include this php opening tag if PHP is already running in the script.
add_filter( 'the_seo_framework_focus_elements', function( $elements ) {
// Add an extra (prepending) pageContent for parsing. In this case, ACF's textarea "intro_text" and input "product_review_note".
$elements['pageContent'] = array_merge(
[ ':where(.values .acf-field, .inside.acf-fields > .acf-field)[data-name="intro_text"] .acf-input textarea' => 'append' ],
[ ':where(.values .acf-field, .inside.acf-fields > .acf-field)[data-name="product_review_note"] .acf-input input' => 'append' ],
@sybrew
sybrew / noindex-bbpress-forums-tsf.php
Last active January 17, 2023 21:26
Applies "noindex" to a forum, and all topics inside that forum.
<?php
// Don't include the PHP tag if PHP is already active.
// Request: https://wordpress.org/support/topic/exclude-specific-bbpress-forums-by-id/
add_filter(
'the_seo_framework_robots_meta_array',
function( $meta, $args, $ignore ) {