Skip to content

Instantly share code, notes, and snippets.

View jdevalk's full-sized avatar
😀

Joost de Valk jdevalk

😀
View GitHub Profile
@jdevalk
jdevalk / no-widgets-for-xml.php
Created June 4, 2014 11:49
When loading an XML sitemap, WordPress still does a number of queries for all the widgets, if I did this in WordPress SEO, do you think that'd "kill" things?
<?php
if ( isset( $_SERVER['REQUEST_URI'] ) && in_array( substr( $_SERVER['REQUEST_URI'], -4 ), array( '.xml', '.xsl' ) ) ) {
remove_all_actions( 'widgets_init' );
}
<?php
/**
* Make the `vc_raw_html` shortcodes content available to the video seo plugin for indexing.
*
* @param string $content The post content
*
* @return string
*/
function yst_make_raw_html_detectable( $content ) {
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<script type="text/javascript">
function showGTitle() {
var gText1 = document.getElementById('gtext1pete').value;
var gBold1 = document.getElementById('gbold1pete').value;
var gWords1 = gBold1.split(' ');
for(var gI1=0; gI1<gWords1.length; gI1++) {
@jdevalk
jdevalk / archive-wpseo_locations.php
Created December 3, 2013 11:31
Easily create a custom post type archive page such as demoed on [the Yoast Local SEO demo site](http://local.yoastdemo.com/locations/) using this file:
<?php
/** Replace the standard loop with our custom Locations loop */
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'wpseo_locations_archive_loop' );
function wpseo_locations_archive_loop() {
echo '<h1>Locations</h1>';
echo '<div class="entry-content"><p>Your intro text here.</p></div>';
$args = array(
@jdevalk
jdevalk / gist:6635587
Last active December 23, 2015 12:29
How to die(); without NextGen Gallery annoying you with more output.
<?php
/**
* Prevent stupid plugins from running shutdown scripts when we're obviously not outputting HTML.
*/
function really_die() {
global $wp_filter;
unset( $wp_filter['wp_footer'], $wp_filter['shutdown'] );
$wp_filter['wp_footer'] = 1;
die();
}
@jdevalk
jdevalk / gist:6234102
Last active December 21, 2015 02:19
Make EDD work with NGINX
<?php
/**
* Make sure EDD doesn't trip over the NGINX values of global server settings and returns the proper current page URL.
*
* @param string $url The current page URL
* @return string The fixed current page URL.
*/
function yst_fix_edd_current_page_url( $url ) {
if ( is_front_page() ) :
$page_url = home_url();
@jdevalk
jdevalk / EDD_AJAX_non_ssl_filter.php
Created August 14, 2013 09:36
Make sure the AJAX URL for EDD uses the protocol for the current page, either http or https, as it doesn't work otherwise.
<?php
/**
* Make sure the AJAX URL for EDD uses the protocol for the current page, either http or https, as it doesn't work otherwise.
*
* @param string $ajaxurl The current ajaxurl
*
* @return string
*/
function yst_filter_edd_ajax_url( $ajaxurl ) {
@jdevalk
jdevalk / discount_url.php
Created August 14, 2013 09:34
Allow specification of a discount coupon through the URL, this means we can do away with the coupon field in the checkout process.
<?php
/**
* Allow people to specify a coupon code in the URL, and add it to their cart.
*/
function yst_edd_discount_link() {
if ( isset( $_GET['coupon'] ) ) {
// Check whether it's a valid coupon, if so, add it to the cart.
if ( edd_is_discount_valid( $_GET['coupon'] ) )
edd_set_cart_discount( $_GET['coupon'] );
@jdevalk
jdevalk / gist:5917169
Last active December 19, 2015 07:09
Add this to your functions.php to make WP SEO work with qTranslate, per this thread: http://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-compatibility-with-qtranslate?replies=24#post-3797599
<?php
/**
* Enable qTranslate for WordPress SEO
*
* @param string $text The string to translate
*
* @return string
*/
function qtranslate_filter( $text ) {
@jdevalk
jdevalk / functions.php
Last active December 18, 2015 00:29
Pushes the WordPress SEO metabox below the ACF metabox. Put the code below in your theme's functions.php or in your functionality plugin:
<?php
/**
* Adds a bit of JS that moves the meta box for WP SEO below the ACF box.
*/
function move_yoast_seo_below_acf_js() {
?>
<script type="text/javascript">
jQuery(document).ready(function ($) {
if ( $('.acf_postbox').length > 0 && $('#wpseo_meta').length > 0 ) {