Skip to content

Instantly share code, notes, and snippets.

@dboutote
dboutote / hide-wp-status-links.php
Created April 19, 2016 17:54
[WordPress] Hide status link in the Posts table
@dboutote
dboutote / random-post-tags.php
Created April 15, 2016 02:52
[WordPress] Display random post tags.
<?php
$args = array(
'taxonomy' => 'post_tag',
'hide_empty' => 0
);
$tags = get_terms( $args );
$class_name = 'my-custom-class-name';
if ( ! empty( $tags ) && ! is_wp_error( $tags ) ) {
shuffle( $tags );
@dboutote
dboutote / bootstrap-link-pages.php
Created March 24, 2016 03:18
Bootstrap replacement for WordPress wp_link_pages() function.
(function ($) {
'use strict';
function change_avatar_div( e ){
var field = $(e.currentTarget);
var acw_avatar_div = field.closest('.acw-thumb-size-wrap').find('.acw-avatar');
if( acw_avatar_div.length ) {
var icon = $( '.acw-icon', acw_avatar_div);
@dboutote
dboutote / recent-grouped-comments.sql
Created March 13, 2016 22:24
[WordPress] Get recent comments grouped by post
SELECT c.*
FROM `dbdb`.`wp_comments` c
LEFT JOIN `dbdb`.`wp_comments` c2 ON c.comment_post_ID = c2.comment_post_ID AND c.comment_date_gmt < c2.comment_date_gmt
JOIN `dbdb`.`wp_posts` ON `dbdb`.`wp_posts`.ID = c.comment_post_ID
WHERE c2.comment_date_gmt is NULL
AND ( c.comment_approved = '1' )
AND c.comment_type NOT IN ('pingback', 'trackback')
AND `dbdb`.`wp_posts`.post_status IN ('publish')
AND `dbdb`.`wp_posts`.post_type IN ('post')
ORDER BY c.comment_date_gmt DESC
@dboutote
dboutote / group-recent-comment.sql
Last active March 13, 2016 20:02
[WordPress] Group Recent Comments by post ID, sort by comment date
SELECT c.comment_ID
FROM wp_comments c
JOIN
( SELECT wp_comments.comment_post_ID, max(wp_comments.comment_date_gmt) maxDate
FROM wp_comments
GROUP BY wp_comments.comment_post_ID
) c2
ON c.comment_date_gmt = c2.maxDate AND c.comment_post_ID = c2.comment_post_ID
JOIN wp_posts
ON wp_posts.ID = c.comment_post_ID
@dboutote
dboutote / feed_filter.php
Last active February 23, 2016 20:28
Limit a WordPress feed to one post type.
<?php
function my_feed_filter($query) {
if ( $query->is_feed && 'cpt_shop' === $query->get('post_type') ) {
$query->set('order', 'asc');
$query->set('meta_key', '_alt_title');
$query->set('orderby', 'meta_value');
};
return $query;
};
add_filter('pre_get_posts','my_feed_filter');
@dboutote
dboutote / edit-tags.js
Last active February 20, 2016 18:22
Removes link around locked tags; removes <span> from title attr. term_name filter.
( function ($) {
'use strict';
var locked_tags = $('table.tags .dashicons-lock').parents('a.row-title');
locked_tags.contents().unwrap().parent().wrapInner('<span class="row-title"></span>');
locked_tags.attr('title', function(){
return 'Edit "' + $.trim( $(this).html().replace(/<[^>]+>/ig,"") ) + '"';
});
<?php
/**
* Filter the terms query SQL clauses.
*
* @see 'terms_clauses' filter in get_terms() wp-includes/taxonomy.php
*
* @since 0.1.0
*
* @todo add filter for $allowed_orderby_keys
@dboutote
dboutote / category_tax_fix.php
Created January 11, 2016 04:51
Instruct WordPress to search on all post types when doing a category taxonomy query.
<?php
function post_type_category_fix($request) {
if ( isset($request['category_name']) && !isset($request['post_type']) )
$request['post_type'] = 'any';
return $request;
};
add_filter('request', 'post_type_category_fix');