// List All URLs / Kiri Vadivelu / 2026 add_action(‘admin_menu’, ‘add_url_list_page’); function add_url_list_page() { add_management_page(‘All URLs’, ‘All URLs’, ‘manage_options’, ‘all-urls’, ‘display_all_urls’); } function display_all_urls() { $args = array( ‘post_type’ => array(‘post’, ‘page’), ‘post_status’ => ‘publish’, ‘numberposts’ => -1 ); $posts…Continue reading
// Custom Role Redirect / Kiri Vadivelu / 2026 function custom_role_dashboard() { // Replace ‘contractor’ with your actual custom role slug $restricted_role = ‘contractor’; if ( is_admin() && ! defined( ‘DOING_AJAX’ ) ) { $current_user = wp_get_current_user(); // Check if…Continue reading
// Restrict Role Access / Kiri Vadivelu / 2026 function restrict_role_access() { // Check if user is trying to access admin area if ( is_admin() && ! defined( ‘DOING_AJAX’ ) ) { $user = wp_get_current_user(); // Check for Subscriber or…Continue reading
// Auto Admin Logout / Kiri Vadivelu / 2026 add_filter( ‘auth_cookie_expiration’, ‘short_session_admin’, 10, 3 ); function short_session_admin( $expiration, $user_id, $remember ) { // Only apply the short timeout for administrators if ( user_can( $user_id, ‘manage_options’ ) ) { return 3600;…Continue reading
// Sticky Tag Post / Kiri Vadivelu / 2026 add_action(‘pre_get_posts’, function($query) { if (!is_admin() && $query->is_main_query() && is_tag()) { $sticky_posts = get_option(‘sticky_posts’); if (!empty($sticky_posts)) { add_filter(‘posts_orderby’, function($orderby, $query) use ($sticky_posts) { if (!is_admin() && $query->is_main_query() && is_tag()) { global $wpdb;…Continue reading
// WP Mail SMTP 4.10.0: stop the “Class ‘Normalizer’ not found” fatal on hosts without PHP intl. // Remove once the plugin update with the fix is installed, or once intl is enabled. if ( ! extension_loaded( ‘intl’ ) &&…Continue reading
// Restrict WP Heartbeat / Kiri Vadivelu / 2026 add_action( ‘init’, function() { if ( ! is_admin() ) { wp_deregister_script( ‘heartbeat’ ); // Disable heartbeat in frontend } }); add_filter( ‘heartbeat_settings’, function( $settings ) { $settings[‘interval’] = 60; // Set…Continue reading
if ( ! function_exists( ‘asj_is_editor_or_preview_request’ ) ) { /** * True for Elementor editor/preview, Gravity Forms preview, * WordPress/Customizer previews and admin requests. */ function asj_is_editor_or_preview_request() { if ( is_admin() || is_preview() || is_customize_preview() ) { return true; } //…Continue reading
// Sensitive User Switch / Kiri Vadivelu / 2026 add_filter( ‘user_has_cap’, function( $allcaps, $caps, $args, $user ) { if ( ‘switch_to_user’ === $args[0] ) { // Deny switching to everyone except site owner if ( $user->user_login !== ‘ownerusername’ ) {…Continue reading