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程序、插件无法自动更新,自动更新失败怎么办

    尝试清除缓存、检查网络连接,或手动下载更新文件进行替换。若仍无法解决,可寻求技术支持或更换主题插件。

    2024-06-01
    0160
  • WordPress 前台和后台设置不同的语言

    WordPress 是一个全球使用广泛的开源内容管理系统,它支持多语言功能,可以让用户根据自己的需求设置前台和后台的语言,本文将详细介绍如何在 WordPress 中设置不同的语言。WordPress 前台和后台语言设置1、前台语言设置前台语言是指用户在访问网站时看到的语言,包括文章、页面、评论等内容,要设置前台语言,需要修改网站的 ……

    2024-01-22
    0143
  • wordpress创建子主题

    WordPress 是一个强大的内容管理系统,它允许用户创建和管理网站,在 WordPress 中,文章标题是一个重要的元素,它可以吸引读者的注意力并传达文章的主题,有时候,一个标题可能无法完全描述文章的内容,这时候,我们就可以使用子标题来提供更多的信息。子标题,也被称为二级标题,它是文章标题的补充,可以更详细地描述文章的各个部分,在……

    2024-01-23
    0126
  • 酷云vps

    WordPress 高仿酷云登录界面WordPress是一个开源的内容管理系统,它提供了丰富的主题和插件,可以让用户轻松地搭建一个个性化的网站,在这篇文章中,我们将介绍如何使用WordPress创建一个高仿酷云登录界面。1、准备工作我们需要安装并启用以下插件:WPForms:一个强大的表单构建器插件,可以帮助我们创建自定义登录表单。B……

    2024-01-23
    0184
  • 创建wordpress数据库

    WordPress是一个使用PHP语言开发的开源内容管理系统,它允许用户通过简单的操作来创建和管理自己的网站,在WordPress中,数据库是存储所有网站数据的核心部分,包括文章、评论、页面、插件设置等,了解如何与WordPress数据库正确交互是非常重要的,本文将详细介绍如何与WordPress数据库进行交互,包括连接到数据库、执行……

    2024-01-21
    0132
  • wordpress 主题开发框架

    WordPress主题框架是WordPress网站的基础,它决定了网站的外观和功能,创建一个WordPress主题框架需要一些技术知识,包括PHP、HTML、CSS和JavaScript等,以下是为你的WordPress主题框架建立起始文件的步骤。1、创建主函数文件你需要创建一个主函数文件,这个文件将包含WordPress主题的所有基……

    2024-01-24
    0210

发表回复

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

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