如何定义WooCommerce[Products]短码的自定义模板?

时间:2018-01-23 作者:AMIB

WooCommerce[产品]快捷码有很多功能,但缺少一些“模板”功能。如何定义如下自定义模板:

[products class="simple-list"]

1 个回复
最合适的回答,由SO网友:AMIB 整理而成

打开主题的功能。php并添加以下内容

add_action( \'woocommerce_shortcode_before_products_loop\', \'roka_before_products_shortcode_loop\', 1, 10 );
add_action( \'woocommerce_shortcode_after_products_loop\', \'roka_after_products_shortcode_loop\', 0, 10 );

function roka_before_products_shortcode_loop( $atts ) {
    $GLOBALS[ \'roka_woocommerce_loop_template\' ] =
        ( isset( $atts[ \'class\' ] ) ? $atts[ \'class\' ] : \'\' );
}

function roka_after_products_shortcode_loop( $atts ) {
    $GLOBALS[ \'roka_woocommerce_loop_template\' ] = \'\';
}
然后覆盖该文件content-product.php 通过将其复制到主题的woocommerce 文件夹

查找线路<li <?php post_class(); ?>> 然后添加以下内容:

<?php
    if(
        isset( $GLOBALS[ \'roka_woocommerce_loop_template\' ] ) &&
        $GLOBALS[ \'roka_woocommerce_loop_template\' ] == \'simple-list\'
    ) {
        echo \'<a href="\' . get_the_permalink() . \'">\' . get_the_title() . \'</a>\';
        return;
    }
?>

结束

相关推荐

Shortcode IF statment help

下面是我一直致力于运行短代码的代码。我已经尝试实施if() 声明,但没有任何效果。我有两个输出。我想做的是,如果属性(\'img\', \'user\', \'text\') 显示在快捷码中$output1.否则,如果属性(\'img\', \'text\', \'length\', \'material\', \'power\') 显示在快捷码中$output2.function hire_equipment_func($atts) { extract( s