Skip to content

Instantly share code, notes, and snippets.

View kellenmace's full-sized avatar

Kellen Mace kellenmace

View GitHub Profile
@kellenmace
kellenmace / PasswordChangeEmailHandler.php
Last active March 26, 2020 15:30
Disable "Password Changed" Email on WPGraphQL User Registration
<?php
class PasswordChangeEmailHandler {
/**
* User ID of the registered user.
*
* @var int
*/
private $registered_user_id = 0;
@kellenmace
kellenmace / exclude-super-admins-from-wpgraphql-users-query.php
Created March 4, 2020 19:31
Exclude Super Admins from WPGraphQL Users Queries
<?php
function filter_super_admin($result, $source, $args, $context, $info, $type_name, $field_key, $field, $field_resolver) {
if ( $type_name === 'RootQuery' && $field_key === 'users') {
$result['edges'] = array_filter($result['edges'], function($edge) {
return !is_super_admin((int)$edge["node"]);
});
}
return $result;
<?php
/**
* Delete all transients from the database whose keys have a specific prefix.
*
* @param string $prefix The prefix. Example: 'my_cool_transient_'.
*/
function delete_transients_with_prefix( $prefix ) {
foreach ( get_transient_keys_with_prefix( $prefix ) as $key ) {
delete_transient( $key );
<?php
function delete_all_post_count_transients() {
$post_types = get_post_types();
$years = get_all_possible_years();
$months = get_all_possible_months();
foreach ( $post_types as $post_type ) {
foreach ( $years as $year ) {
foreach ( $months as $month ) {
<?php
function set_post_count_transient( $count, $post_type, $year, $month ) {
$transient_key = "km_post_count_{$post_type}_{$year}_{$month}";
set_transient( $transient_key, $count, WEEK_IN_SECONDS );
}
@kellenmace
kellenmace / ShortcodeBlockModifier.php
Last active February 18, 2020 19:59
Render Shortcodes in WPGraphQL Gutenberg Blocks
<?php
namespace Harness\Gutenberg;
use WPGraphQLGutenberg\WPGraphQLGutenberg;
use WPGraphQL\Registry\TypeRegistry;
use Harness\Interfaces\Hookable;
class ShortcodeBlockModifier implements Hookable {
public function register_hooks() {
@kellenmace
kellenmace / array_find.php
Last active May 21, 2020 15:49
array_find() function for PHP
<?php
/**
* Get the value of the first array element that satisfies the callback function.
* Similar to JavaScript's Array.prototype.find() method.
*
* @param array $array The array.
* @param callable $callback The callback function.
*
* @return mixed The value of the element, or null if not found.
@kellenmace
kellenmace / gutenberg-graphql-schema.txt
Created September 20, 2019 17:37
WordPress Gutenberg GraphQL Schema Definitions
type CoreArchivesBlock implements Block {
attributes: CoreArchivesBlockAttributes
name: String!
innerBlocks: [Block]!
isValid: Boolean!
originalContent: String!
parentId: Int
parent: PostObjectTypesUnion
renderedContent: String!
}
@kellenmace
kellenmace / javascript-array-filter-indicies.js
Created September 16, 2019 21:28
JavaScript Array Filter to get Indices
const cars = [
{make: "ford", model: "mustang"},
{make: "toyota", model: "camry"},
{make: "ford", model: "fiesta"},
{make: "chevrolet", model: "volt"},
{make: "ford", model: "escape"},
{make: "chrysler", model: "pacifica"},
]
const fordCarIndices = cars.reduce((fordCarIndices, field, index) => {
@kellenmace
kellenmace / km-remove-slug-from-custom-post-type.php
Last active March 26, 2024 00:49
Remove Slug from Custom Post Type URL in WordPress
<?php
/**
* Plugin Name: Remove Slug from Custom Post Type
* Description: Remove slug from custom post type URLs.
* Version: 0.1.0
* Author: Kellen Mace
* Author URI: https://kellenmace.com/
* License: GPLv2 or later
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/