【问题标题】:How do I display a "category products drop down in a wordpress page" in Woocommerce 2.5.2如何在 Woocommerce 2.5.2 中显示“wordpress 页面中的类别产品下拉列表”
【发布时间】:2016-02-18 02:55:58
【问题描述】:

我想显示一个类别中产品的下拉菜单。

<select>
  <option value="CODE HERE">Volvo</option>
</select> 

所以根据Wordpress编码..

<?php

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

好的,所以我进一步调查,我希望根据https://developer.wordpress.org 做一个单页模板我正在使用一个名为 NOVA WP 的 Storefront 子主题。

为了制作这个“单页模板”,我复制了 page.php 并将其重命名为 page-buildit.php

这是Mypage,我在其中实际编辑了代码。我确实复制了代码,但结果是空白

找到这个:WooCommerce: Create a shortcode to display product categories 但我不明白的是,我们不能再用新的 wordpress 版本这样做了。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:
    <?php
    $args = array(
        'order'      => 'ASC',
        'hide_empty' => $hide_empty,
        'include'    => $ids,
        'posts_per_page' =>'-1'
    );
    $product_categories = get_terms( 'product_cat', $args );
    echo "<select>";
    foreach( $product_categories as $category ){
        echo "<option value = '" . esc_attr( $category->slug ) . "'>" . esc_html( $category->name ) . "</option>";
    }
    echo "</select>";
    ?>
    

    看看这个。这是获取产品类别的方法!

    【讨论】:

    • 我在哪里输入这个?
    • @ingalcala 此代码不在类别描述中。这直接进入主题的模板文件。如果您没有自己构建主题,最好是子主题。要编辑哪个文件,请参考模板层次结构developer.wordpress.org/themes/basics/template-hierarchy
    • 这里也没有转义,让您容易受到恶意数据的攻击。在foreach 的括号之间将代码替换为:echo "&lt;option value = '" . esc_attr( $category-&gt;slug ) . "'&gt;" . esc_html( $category-&gt;name ) . "&lt;/option&gt;"; 了解有关writing secure code 的更多信息
    • 创建一个名为 test 的新页面。在您的主题中添加 page-test.php 并粘贴此代码并访问该页面。您在 wp-admin 中添加的类别将显示在组合框中。这就是它的工作原理。!
    • 我刚刚注意到这不是针对类别内的产品,而是针对类别本身..
    【解决方案2】:

    您还可以使用函数 wp_dropdown_categories 来简化您的代码。 要获得产品类别的下拉列表,您可以这样编写。

    $args = array('hide_empty'=> 0,
      'taxonomy'=> 'product_cat',
      'hierarchical'=>1);
    
    wp_dropdown_categories($args);
    

    或者,如果您想将输出保存在一个变量中,您可以使用参数 'echo'=>0 然后回显该变量以获得相同的输出。

    $args = array('hide_empty'=> 0,
        'taxonomy'=> 'product_cat',
        'hierarchical'=>1,
        'echo'=>0);
    
    $cats = wp_dropdown_categories($args);
    echo $cats;
    

    【讨论】:

      【解决方案3】:

      好的,这就是我解决它的方法,在 Hemnath mouli 的帮助下,我已经将答案归功于您,但我想将产品发布到 Dropbox 的某个类别中。

      $args = array(
      'posts_per_page' => -1,
      'product_cat' => 'motherboard',
      'post_type' => 'product',
      'orderby' => 'title',
      );
      $products = new WP_Query( $args );
      echo "<select>";
      foreach ( $products as $product ) {
      $products->the_post();
      ?>      
      <option value="<?php the_permalink(); ?>"> <?php the_title(); ?>    
      <?php
      }
      echo "</select>";
      ?>
      

      现在我需要在选择后显示该产品的图像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-21
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        相关资源
        最近更新 更多