惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
V
V2EX
美团技术团队
H
Help Net Security
月光博客
月光博客
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
U
Unit 42
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - Franky
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
MyScale Blog
MyScale Blog
B
Blog
雷峰网
雷峰网
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
How to Hide Out-of-Stock Products on Your WordPress Website
Ali Karbasi · 2026-05-27 · via DEV Community
Cover image for How to Hide Out-of-Stock Products on Your WordPress Website

Ali Karbasi

  • Posted on Aug 5, 2024
  • 2 min read

🤖 AI summary: This article outlines a technical method to improve the shopping experience on WordPress websites by automatically hiding out-of-stock products from the main views. By adding a custom PHP code snippet to the theme's functions.php file, site administrators can utilize the pre_get_posts action hook to modify the main database query. This ensures that items with a "outofstock" status are excluded from the home page, shop page, and product category archives, keeping the storefront clutter-free and preventing customer frustration.

If you use WordPress to manage an online store, you must keep your product pages clean and clutter-free. One effective strategy is to hide out-of-stock items. This improves the general shopping experience and helps avoid confusion among customers. In this article, we'll walk you through a simple method to hide out-of-stock products using a custom code snippet added to your functions.php file.

The Code

Let's start by looking at the code that will make your product pages show only available products.

/**
 * Visit alikarbasi.com/blog for more codes.
**/
function custom_pre_get_posts_query( $q ) {
    if ( ! is_admin() && $q->is_main_query() ) {
        if ( is_home() || is_front_page() || is_shop() || is_product_category() ) {
            $meta_query = $q->get( 'meta_query' );
            $meta_query[] = array(
                'key'     => '_stock_status',
                'value'   => 'outofstock',
                'compare' => 'NOT IN',
            );
            $q->set( 'meta_query', $meta_query );
        }
    }
}
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

Enter fullscreen mode Exit fullscreen mode

How It Works

This code snippet leverages the pre_get_posts action hook to modify the main query before WordPress fetches posts from the database. Here's a breakdown of how it works:

  1. Function Declaration: The function custom_pre_get_posts_query is declared to modify the query parameters.
  2. Conditional Check: The function checks if the current request is not from the WordPress admin area (! is_admin()) and if it is the main query ($q->is_main_query()).
  3. Home and Front Page Check: It further checks if the current page is the home page or the front page (is_home() or is_front_page()) or the current page is shop page (is_shop()) or product category page (is_product_category()).
  4. Modify Meta Query: If all conditions are met, it retrieves the existing meta_query from the query object and appends a new condition to exclude posts with the meta key _stock_status set to outofstock.
  5. Set Modified Meta Query: The modified meta_query is then set back to the query object, effectively excluding out-of-stock products from the results.

How to Use the Code

To apply this code to your WordPress site, take these steps:

Access Your Theme's functions.php File:

  1. Log in to your WordPress admin dashboard.
  2. Navigate to Appearance > Theme Editor.
  3. In the Theme Files list, locate and click on functions.php.

Add the Code:

  1. Copy the provided code snippet.
  2. Paste it at the end of your functions.php file, just before the closing ?> tag if it exists.

Save Changes:

  • Click the Update File button to save your changes.

Conclusion

By adding this simple code snippet in your functions.php file, you can easily hide out-of-stock items from your product and main pages. This will assist maintain your website clean and guarantee that customers only see available products.

Happy coding :D