返回

如何在 WooCommerce 中通过简码展示特定作者的所有产品?

php

在 WooCommerce 中通过简码展示特定作者的所有产品

简介

在 WooCommerce 电子商务平台中,通过简码展示特定作者的所有产品是一个常见需求。本文将提供分步指南,介绍如何完成此任务,并解决沿途可能遇到的错误。

第 1 部分:定义简码

  • 创建一个简码,例如 [author_products],以在前端显示产品。
  • 在 functions.php 文件中添加以下代码:
add_shortcode( 'author_products', 'products_current_author' );

第 2 部分:创建函数

  • 定义一个函数 products_current_author,它查询作者的产品并返回它们的 ID。
  • 在 functions.php 文件中添加以下代码:
function products_current_author() {
    // 替换 "andrey" 为作者的用户名
    $args = [
        'author_name'    => 'andrey',
        'post_type' => 'product',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    ];

    $ids = get_posts($args);
    
    if ( !empty($ids) ) {
        return do_shortcode('[products ids="' . join(",", array_unique($ids)) . '"]');
    } else {
        return '没有找到产品。';
    }
}

第 3 部分:使用简码

  • 在要显示产品的页面中使用简码 [author_products]
  • 例如,在 page.php 页面中添加以下代码:
<?php echo do_shortcode('[author_products]'); ?>

解决错误:

  • 将数组转换为字符串。将 get_posts($args) 的结果直接赋值给 $ids

提示:

  • 替换 author_name 为要显示其产品的作者的用户名。
  • 使用 posts_per_page 控制要显示的产品数量。
  • 使用 orderbyorder 对产品排序。

结论

遵循这些步骤,你将能够在 WooCommerce 中成功显示特定作者的所有产品。使用简码简化了这个过程,让你可以轻松地动态地显示产品列表。

常见问题解答

  1. 我可以显示多个作者的产品吗?
    是的,你可以使用多个 author_products 简码,每个简码指定一个作者。

  2. 我能控制产品显示顺序吗?
    是的,使用 orderbyorder 参数对产品进行排序。

  3. 找不到作者的产品怎么办?
    检查作者的用户名是否正确,并确保该作者已发布了产品。

  4. 如何自定义产品显示的外观?
    你可以使用 WooCommerce 的 CSS 规则来样式化产品列表。

  5. 还有其他方式可以显示作者的产品吗?
    除了使用简码外,你还可以使用 PHP 代码或插件来实现相同的结果。