当前位置: 首页 > 知识库问答 >
问题:

用PHP代码编写Wordpress商业建议

壤驷敏学
2023-03-14

我正在使用woo Commerce插件,我希望在每个产品的标题下都有一个子标题。样式和格式已排序,但我希望在子标题部分显示特定类别。我已经尽可能地显示了所有类别,但我想将其缩小到父类别下的一个类别。下面是我正在使用的代码,有谁能建议我如何实现显示在父类别下选择的任何子类别。谢谢

<?php
/**
 * Single Product title
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

global $post, $product;

$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
?>

<h1 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h1>

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Artist:', 'Artist:', $cat_count, 'woocommerce' ) . ' ', '.</span>' ); ?>

结果是:

数组([0]=

<?php

/**
 * Single Product title
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly


global $post, $product;

$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
?>


<h1 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h1>

<?php 


    global $post, $product;

    $cat_array = array();
    $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details

    foreach($term_list as $cat_list)
    {

        array_push($cat_array, $cat_list->term_id);

    }

    $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array

   $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1

   $final_result = array_intersect($cat_array,$termchildren); print_r($final_result);

    $new_cat_id = $final_result[0];

    $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID

    $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID

    $name = $term->name; //Store it into an varialbe

    echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>";
?>

'

共有1个答案

姬裕
2023-03-14

试试这个:

<?php 

    global $post, $product;

    $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details

    $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array

    $cat_url = get_term_link ($cat_id, 'product_cat'); //get link of parent ID

    $term = get_term( $cat_id, 'product_cat' ); //Get Name of the parent from the parent ID

    $name = $term->name; //Store it into an varialbe

    echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>";

?>

记住:

WooCommerce中,产品类别不是普通的类别,它们是专门为被标记为类别的产品创建的自定义分类法。

如果你有任何疑问,请告诉我。

更新:

    <?php 

        global $post, $product;

        $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details

        $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array

       $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1

        $new_cat_id = $termchildren[2];

        $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID

        $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID

        $name = $term->name; //Store it into an varialbe

        echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>";

    ?>

最新更新(2015年1月2日)

    <?php 

        global $post, $product;

        $cat_array = array();
        $term_list = wp_get_post_terms($post->ID, 'product_cat', array("fields" => "all")); //get array containing category details

        foreach($term_list as $cat_list)
        {

            array_push($cat_array, $cat_list->term_id);

        }

        $cat_id = ($term_list[0]->parent); //get parent category ID from the above generated array

       $termchildren = get_term_children( '90' , 'product_cat' ); //New Line in Updattion -1

       $final_result = array_intersect($cat_array,$termchildren);

       $final_cat_result = array_values($final_result);

        $new_cat_id = $final_cat_result[0];

        $cat_url = get_term_link ($new_cat_id, 'product_cat'); //get link of parent ID

        $term = get_term( $new_cat_id, 'product_cat' ); //Get Name of the parent from the parent ID

        $name = $term->name; //Store it into an varialbe

        echo "Artist: <a href='".esc_url($cat_url)."'>".$name."</a>";
    ?>

行:1$post$product都是全局变量。因此,在其他文件中使用它时,我们需要在使用它之前将其添加到我们的文件中。

行:2一个空白数组,用于存储当前产品**的所有类别。我们将在将来使用它。

第3行wp\u get\u post\u terms用于检索帖子的术语(用于woocommerce及其产品类别)。因此,现在我们有了一个数组,其中包含带有ID、name等的术语的所有详细信息

第4行:用于循环上面生成的数组。我们将循环一个数组并查找term\u id。我们将使用array\u push存储所有的term id,并使用第2行的空白数组进行存储。因此,现在我们有了一个term\u id数组。

第9行:现在我们将使用get_term\u children检索艺术家的子项,因为我们知道艺术家term ID及其固定项。它将给出一个数组作为输出。

行:10array\u intersect用于匹配两个数组并仅提取匹配值。(基本上,我们查看当前产品类别和所有艺术家类别以仅提取匹配类别)。

第11行array\u value对重新索引数组很有用。(通过添加这一行,我们解决了出现的错误:)

第12行:现在我们有一个数组,它只有一个值,即艺术家的术语ID(就是这样。现在您只需要从该术语ID中获取艺术家的名称和链接)

行:13获取艺术家的链接。

第15行:从第14行生成的数组中提取艺术家的名字,并将其存储在变量中。

行: 16打印需要的东西,我们就完成了!

 类似资料:
  • 我使用以下函数来接收订单的购物车总数、订单id和优惠券代码。该函数显示购物车的总金额和订单id,但不显示应用的优惠券代码。 根据Woocommerce codex的示例,它应该可以工作:http://docs.woothemes.com/document/send-coupons-used-in-an-order-by-email/

  • 在进一步介绍之前,让我们花点时间来讨论编写"通用"代码时的约束条件 - 即运行在服务器和客户端的代码。由于用例和平台 API 的差异,当运行在不同环境中时,我们的代码将不会完全相同。所以这里我们将会阐述你需要理解的关键事项。 服务器上的数据响应 在纯客户端应用程序 (client-only app) 中,每个用户会在他们各自的浏览器中使用新的应用程序实例。对于服务器端渲染,我们也希望如此:每个请求

  • 问题内容: 我有一个表格,单击提交按钮: 我想在同一文件中执行一些任务(数据库任务),然后 我希望通过重定向将表单数据发送到test.php 这是我的代码 但无法提交表单,如果我在onClick上调用javascript代码,则可以正常工作。此代码中的问题是什么,有没有解决的办法 问题答案: 只需在if函数中回显javascript

  • 在进一步介绍之前,让我们花点时间来讨论编写"通用"代码时的约束条件 - 即运行在服务器和客户端的代码。由于用例和平台 API 的差异,当运行在不同环境中时,我们的代码将不会完全相同。所以这里我们将会阐述你需要理解的关键事项。 服务器上的数据响应 在纯客户端应用程序(client-only app)中,每个用户会在他们各自的浏览器中使用新的应用程序实例。对于服务器端渲染,我们也希望如此:每个请求应该

  • 11.3 编写代码 要完成我们的程序,我们需要创建一个Java文件。默认情况下,Maven会编译src/main/java目录下的源文件,因此您需要创建该目录结构,然后添加一个名为src/main/java/Example.java的文件: import org.springframework.boot.*; import org.springframework.boot.autoconfigur

  • 我是spring MVC的新手。我需要在jsp中编写java代码(虽然这不是一个好的实践,但我没有其他选择)。我的Jsp现在是 但它给出了一个错误“org.apache.jasper.JasperException:无法为JSP编译类:”。有人能帮忙吗?? 包含的标题是 org.apache.jasper.compiler.DefaultErrorHandler.javac错误(andler.ja