Skip to content

Instantly share code, notes, and snippets.

View someguy9's full-sized avatar
🏠
Working from home

Andy Feliciotti someguy9

🏠
Working from home
View GitHub Profile
@someguy9
someguy9 / wordpress-query-posts-between-dates.php
Last active October 30, 2025 01:53
Using meta_query to query posts between dates in WordPress
<?php
$args = array(
'meta_query' => array(
array(
'key' => 'my_date_field',
'value' => array('2022-01-01', '2022-12-31'),
'type' => 'DATE',
'compare' => 'BETWEEN',
),
),
@someguy9
someguy9 / wordpress-query-post-meta-value.php
Last active October 30, 2025 01:52
Query Posts By a Meta Value
<?php
$args = array(
'meta_query' => array(
array(
'key' => 'featured_post',
'value' => '1',
'compare' => '=',
),
),
'no_found_rows' => true,
@someguy9
someguy9 / wordpress-query-post-meta-value-multiple.php
Last active October 30, 2025 01:51
Query multiple meta key values in WordPress
<?php
$args = array(
'meta_query' => array(
array(
'key' => 'city_name',
'value' => array('New York City', 'London', 'San Francisco'),
'compare' => 'IN',
),
),
);
<?php
$args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'city_name',
'value' => array('New York City', 'London', 'San Francisco'),
'compare' => 'IN',
),
array(
// Function to check if an email is disposable using multiple API services
async function isDisposableEmail(email, ip = null) {
try {
// Construct API URLs with email and optionally IP for StopForumSpam
const debounceUrl = `https://disposable.debounce.io/?email=${email}`;
const verifyMailUrl = `https://verifymail.io/api/${email.split('@')[1]}?key=${process.env.VERIFYMAIL_API_KEY}`;
const stopForumSpamUrl = `https://api.stopforumspam.org/api?email=${email}&json=true${ip ? `&ip=${ip}` : ""}`;
// Make parallel requests to the APIs
const [debounceResponse, verifyMailResponse, stopForumSpamResponse] = await Promise.all([
@someguy9
someguy9 / meta-cheerio.js
Created September 28, 2024 21:42
Getting meta title, description, and og:image using cheerio and Node.js
import * as cheerio from 'cheerio'
export async function getMetadata(url) {
// Ensure the URL starts with http:// or https://
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = `https://${url}`;
}
try {
// Fetch the HTML content of the URL
@someguy9
someguy9 / user-last-login-wordpress.php
Last active August 17, 2024 08:21
Saves a WordPress user's last login and puts it in a sortable column in the WordPress dashboard
<?php
//Record user's last login to custom meta
add_action( 'wp_login', 'smartwp_capture_login_time', 10, 2 );
function smartwp_capture_login_time( $user_login, $user ) {
update_user_meta( $user->ID, 'last_login', time() );
}
//Register new custom column with last login time
add_filter( 'manage_users_columns', 'smartwp_user_last_login_column' );
@someguy9
someguy9 / limit-comment-length-by-post-id.php
Created July 29, 2024 15:16
Limit comment length in WordPress by post ID
<?php
// Limit the comment length to 6000 characters and a minimum of 50 characters in WordPress for a specific post
add_filter('preprocess_comment', 'smartwp_limit_comment_length');
function smartwp_limit_comment_length($comment) {
// Specify the post ID where you want this function to run
$specific_post_id = 123; // Replace 123 with your desired post ID
// Check if the current post is the specific post we want to target
if (get_the_ID() == $specific_post_id) {
@someguy9
someguy9 / wordpress-active.php
Last active July 4, 2024 14:28
Check if WordPress plugin is active
<?php
// Checking if a WordPress plugin (works for admin or front end)
if ( in_array( 'plugin-directory/main-plugin-file.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
// Plugin is active
}
@someguy9
someguy9 / admin-area-is-plugin-active.php
Last active July 4, 2024 14:27
Is WordPress plugin active for admin
<?php
// Checking if a WordPress plugin is active in the admin dashboard
if ( is_plugin_active( 'plugin-directory/main-plugin-file.php' ) ) {
// plugin is active
}