wordpress隐藏内容插件

商店、产品搜索和 WordPress 搜索中完全隐藏 WooCommerce 产品

在 WooCommerce 中,有时候我们希望在商店、产品搜索和 WordPress 搜索中完全隐藏某些产品,以便保护商业秘密或提高搜索结果的准确性,本文将介绍如何实现这一目标,包括使用插件、自定义代码和设置过滤器等方法。

1、使用插件

wordpress隐藏内容插件

市面上有很多插件可以帮助我们在商店、产品搜索和 WordPress 搜索中完全隐藏 WooCommerce 产品,Hide Products”和“Search & Hide Products”,这些插件可以轻松地将指定的产品从搜索结果中移除,同时还可以根据需要设置隐藏条件,如价格、标签等。

2、自定义代码

wordpress隐藏内容插件

如果不想使用插件,我们还可以编写自定义代码来实现隐藏 WooCommerce 产品的功能,我们需要在主题的 functions.php 文件中添加以下代码:

function hide_woocommerce_products() {
    if (is_search()) { // 如果是搜索页面
        global $query; // 获取查询参数
        if (isset($query['post_type']) && 'product' === $query['post_type']) { // 如果查询参数中包含产品类型
            unset($query['s']); // 移除搜索关键字
        }
    } elseif (is_admin()) { // 如果是后台管理页面
        global $pagenow; // 获取当前页面
        if ('edit.php' === $pagenow) { // 如果是编辑产品页面
            if (isset($_GET['post'])) { // 如果查询参数中包含产品 ID
                $post_id = intval($_GET['post']); // 将产品 ID 转换为整数
                if ($post_id !== get_option('page_on_front')) { // 如果产品 ID 不等于首页显示的产品 ID
                    remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
                } else {
                    add_action('save_post', 'hide_woocommerce_products', 10, 3); // 在保存文章时重新添加钩子函数,并传递文章 ID、当前文章对象和布尔值 true 作为参数
                }
            } elseif (isset($_GET['post_id'])) { // 如果查询参数中包含产品 ID
                $post_id = intval($_GET['post_id']); // 将产品 ID 转换为整数
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('edit.php', 'post-new.php'), true)) { // 如果是编辑或新建产品页面
            if (isset($_GET['post'])) { // 如果查询参数中包含产品 ID
                $post_id = intval($_GET['post']); // 将产品 ID 转换为整数
                if ($post_id !== get_option('page_on_front')) { // 如果产品 ID 不等于首页显示的产品 ID
                    remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
                } else {
                    add_action('save_post', 'hide_woocommerce_products', 10, 3); // 在保存文章时重新添加钩子函数,并传递文章 ID、当前文章对象和布尔值 true 作为参数
                }
            } elseif (isset($_GET['post_id'])) { // 如果查询参数中包含产品 ID
                $post_id = intval($_GET['post_id']); // 将产品 ID 转换为整数
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('edit.php', 'wp-admin/edit.php'), true) && isset($_GET['post'])) { // 如果是后台管理页面且查询参数中包含文章 ID(可能是用于批量操作的)
            $post_id = intval($_GET['post']); // 将文章 ID 转换为整数
            remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
        } elseif (in_array($pagenow, array('wp-admin/edit.php'), true)) { // 如果是后台管理页面且没有查询参数中的文章 ID(可能是用于批量操作的)
            foreach (get_posts(array('post_type' => 'product')) as $p) { // 遍历所有产品文章
                if ($p->ID === get_option('page_on_front')) continue; // 如果当前产品是首页显示的产品,则跳过本次循环
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('wp-admin/themes.php'), true)) { // 如果是后台管理页面且没有查询参数中的商品信息(可能是用于批量操作的)
            foreach (get_posts(array('post_type' => 'product')) as $p) { // 遍历所有产品文章
                if ($p->ID === get_option('page_on_front')) continue; // 如果当前产品是首页显示的产品,则跳过本次循环
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('wp-admin/options-general.php'), true)) { // 如果是后台管理页面且没有查询参数中的商品信息(可能是用于批量操作的)
            foreach (get_posts(array('post_type' => 'product')) as $p) { // 遍历所有产品文章
                if ($p->ID === get_option('page_on_front')) continue; // 如果当前产品是首页显示的产品,则跳过本次循环
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('wp-admin/options-permalink.php'), true)) { // 如果是后台管理页面且没有查询参数中的商品信息(可能是用于批量操作的)
            foreach (get_posts(array('post_type' => 'product')) as $p) { // 遍历所有产品文章
                if ($p->ID === get_option('page_on_front')) continue; // 如果当前产品是首页显示的产品,则跳过本次循环
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('wp-admin/options-reading.php'), true)) { // 如果是后台管理页面且没有查询参数中的商品信息(可能是用于批量操作的)
            foreach (get_posts(array('post_type' => 'product')) as $p) { // 遍历所有产品文章
                if ($p->ID === get_option('page_on_front')) continue; // 如果当前产品是首页显示的产品,则跳过本次循环
                remove_action('save_post', 'hide_woocommerce_products'); // 移除保存文章时的钩子函数
            }
        } elseif (in_array($pagenow, array('wp-admin/options-writing.php'), true)) { // 如果是后台管理页面且没有查询参数中的商品信息(可能是用于批量操作的)
            foreach (get_posts(array('post

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/232817.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-19 22:16
Next 2024-01-19 22:20

相关推荐

  • 管理 WordPress 核心/主题/插件更新提示 Easy Updates Manager

    WordPress 是一个广泛使用的开源内容管理系统,它提供了一个强大的平台,让开发者和设计师可以轻松地创建和管理网站,随着 WordPress 的不断发展,保持其核心、主题和插件的更新是非常重要的,这不仅可以确保您的网站安全,还可以获得最新的功能和性能优化,在本文中,我们将介绍一个名为 Easy Updates Manager 的插……

    2024-01-23
    0181
  • html提交表单按钮

    朋友们,你们知道html5form表单提交这个问题吗?如果不了解该问题的话,小编将详细为你解答,希望对你有所帮助!HTML5点击提交按钮后,页面内容将会被提交到___指定的路径.你给form添加一个action,里面放文件的相对路径。当submit按钮点击的时候自然会跳转到action指定的页面。或者给submit绑定onclick事件,点击通过window.open或者window.location.href跳转。

    2023-11-19
    0153
  • wordpress用户管理插件「使用 UserPro 增强您的 WordPress 社区:集成 Google 地图和社交登录」

    在当今的互联网时代,社区已经成为了人们交流、分享和学习的重要平台,对于WordPress用户来说,如何提升社区的用户体验,增强社区的活跃度和粘性,是每个网站管理员都需要思考的问题,我们将介绍一款强大的WordPress插件——UserPro,它可以帮助管理员轻松实现Google地图和社交登录的集成,从而提升社区的用户体验。UserPr……

    2023-11-07
    0185
  • WordPress网站安全防护插件 Nintechnet

    WordPress网站安全防护插件 Nintechnet随着互联网的普及,越来越多的企业和个人开始使用WordPress构建自己的网站,网络安全问题也随之而来,黑客攻击、数据泄露等事件时有发生,为了确保WordPress网站的安全,我们需要使用一些专业的安全防护插件,本文将推荐一款优秀的WordPress安全防护插件——Nintech……

    2024-01-20
    0211
  • 如何为WordPress插件添加在线投票功能「wordpress插件怎么用」

    在当今的互联网时代,用户参与度是任何网站或应用成功的关键因素之一,而在线投票功能就是一种有效的方式,可以让用户参与到你的网站或应用中来,提高他们的参与度和满意度,WordPress作为最受欢迎的内容管理系统之一,其强大的插件系统为我们提供了无限的可能性,如何为WordPress插件添加在线投票功能呢?本文将为你详细解析。我们需要明确什……

    2023-11-07
    0148
  • wordpress主题html5_wordpress主题显示不出来

    大家好!小编今天给大家解答一下有关wordpress主题html5,以及分享几个wordpress主题显示不出来对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。总裁主题和日主题哪个好用1、总裁主题好。根据查询相关公开信息显示,总裁比ripro大气,总裁以大气、豪华、典雅为设计风格,适合需要展示权威、高端、传统的企业或个人使用。2、适合在公司晨会上分享的主题 适合在公司晨会上分享的主题,晨会是指利用上班前的5—10分钟时间,全体员工集合一起,互相问候,如果是做为一个管理者有或者是晨会的主持者,应该要怎么讲呢,以下是关于适合在公司晨会上分享的主题。

    2023-11-22
    0148

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入