Skip to content

Instantly share code, notes, and snippets.

View tarecord's full-sized avatar
🔨
Hammering Things Into Place

Tanner Record tarecord

🔨
Hammering Things Into Place
View GitHub Profile
@tarecord
tarecord / get_top_ancestor.php
Created June 6, 2017 18:22
Get the top most parent of a WordPress post
/**
* Gets the top most ancestor for a post.
*
* @param object $post The current post
*
* @return integer The post ID of the ancestor
*/
function get_top_ancestor( $post ) {
if ( $post->post_parent ) {
$ancestors = get_post_ancestors( $post->ID );
@tarecord
tarecord / redirect_attachment_page_to_file.php
Last active October 7, 2023 18:04
Redirect any WordPress attachment page to the actual file
<?php
/**
* Redirect all attachment pages to actual file
*/
function redirect_attachment_pages() {
global $post;
// Return if not an attachment
if ( !is_attachment() ) {
@tarecord
tarecord / menu_transients.php
Created July 5, 2017 17:54
A function to display a nav menu saved as a transient
<?php
/**
* Menu Transient, a function that helps with extremely large menus by storing the query in a transient
* for ~24hrs. It can be used in template files to both store the transient and display the menu so there
* is no need for multiple functions and queries.
*
* @param $name string A descriptive name of the menu (ex. "mobile-menu" or "quick-links").
* @param $args array The array of nav menu arguments.
*
* @return string The HTML formatted nav menu
@tarecord
tarecord / docker-compose.yml
Created November 27, 2018 20:22
A docker-compose configuration for spinning up local WordPress sites
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
ports:
- "3306:3306"
restart: always
@tarecord
tarecord / get_primary_taxonomy_term.php
Last active October 7, 2023 18:16
Returns the primary term for the chosen taxonomy set by Yoast SEO or the first term selected.
<?php
/**
* Returns the primary term for the chosen taxonomy set by Yoast SEO
* or the first term selected.
*
* @link https://www.tannerrecord.com/how-to-get-yoasts-primary-category/
* @param integer $post The post id.
* @param string $taxonomy The taxonomy to query. Defaults to category.
* @return array The term with keys of 'title', 'slug', and 'url'.
*/
@tarecord
tarecord / get_vimeo_id.php
Last active October 7, 2023 18:02
A function that takes a vimeo url and returns the video ID
<?php
function get_vimeo_id( $url ) {
/**
* Matches:
* https://player.vimeo.com/video/123456789
* https://vimeo.com/123456789
* https://www.vimeo.com/123456789
*/
preg_match( '/(vimeo\.com\/)(?:video\/)?([\d]+)/', $url, $matches );
$vimeo_id = $matches[2];
@tarecord
tarecord / find-font-families.js
Created July 14, 2020 20:10
Find a list of font families within CSS, SCSS or SASS
// var content = document.querySelector('.my-css-file');
content.match(/font-family:\s[\'|\"](.*)[\'|\"]/g).map(function(string){
var font = string.split(": ");
return font[1].slice(1, -1);
}).filter((v, i, a) => a.indexOf(v) === i)
// returns reduced array of unique font families: ['Times New Roman', 'Source Sans Pro', ... ]
ul li {
// Remove the old list style.
list-style: none;
position: relative;
}
ul li:before {
content: '';
// Position the pseudo element relative to each list item.
position: absolute;
@tarecord
tarecord / redirect_after_register.php
Created September 23, 2020 11:35
Sign in With Google - Adjust redirect after successfully authenticating
<?php
/**
* functions.php
**/
add_filter( 'siwg_auth_redirect', 'redirect_users_after_login', 10, 1 );
/**
* Filter the url redirection after user authenticates with Google.
**/
@tarecord
tarecord / .git_commit_template
Created January 14, 2021 20:14
A template to help you write better commits
######## Subject Line (50 characters) ############
# - Use the imperative mood (imagine the words "This will")
# - Capitalize the first letter
# - Limit to 50 characters
# - Do not end the subject line with a period
######## The Body (72 characters per line) #############################
# - Add line breaks so each line is a maximum of 72 characters