我不希望使用任何插件来完成这项任务,因为我最近与一个破坏网站的类似项目发生冲突。因此,我希望从基础创建此功能。
我需要在产品类别页面上的下拉列表,以按品牌选择产品。下拉列表将显示所有品牌。当您选择一个时,网站只显示分配给该品牌的产品。我们不需要使用内置的下拉列表,允许按新鲜度、价格、流行度等查看。
使用WooCommerce“Brands
”分类法,我建立了自己的品牌,并为每个产品分配了一个品牌。
我可以使用以下代码查看所有品牌及其属性的数组:
$brands = get_terms('brand');
print_r($brands);
其输出如下:
排列(
[0]=
[1]=
[2] =
[3]=
[5] =
[6]=
[7] =
[8]=
)
如何构建下拉(选择)列表来创建它?我想它会有这样的框架,我已经开始:
<?php
$brands = get_terms('brand');
//print_r($brands);
?>
<select name="orderby" class="orderby">
<?php foreach ( $brands as ??? ) : ?>
<option value="<?php echo esc_attr( $??? ); ?>" <?php selected( $orderby, $??? ); ?>><?php echo esc_html( $??? ); ?></option>
<?php endforeach; ?>
</select>
在新版本的WooCommerce中,术语
的前缀是pa_,因此品牌已被pa_品牌取代
最新版本的工作代码是
<?php $brands = get_terms('pa_brand', ['orderby' => 'name']); ?>
<select name="orderby" class="orderby">
<?php
if (!empty($brands) && !is_wp_error($brands)):
foreach ($brands as $brand) :
?>
<option value="<?= $brand->term_id; ?>">
<?= $brand->name; ?>
</option>
<?php
endforeach;
endif;
?>
</select>
参考:https://developer.wordpress.org/reference/functions/get_terms/
正如您所见,它是一个术语对象数组(WP_term Object),您必须在循环中使用该术语的每个属性的对象语法,如下所示:
<?php
$brands = get_terms( 'brand', array(
'orderby' => 'name' // orderby arguments ('name', 'slug','term_group', 'term_id', 'id', 'description')
) );
//print_r($brands);
?>
<select name="orderby" class="orderby">
<?php
foreach ( $brands as $key => $brand ) :
$brand_id = $brand->term_id;
$brand_name = $brand->name;
$brand_slug = $brand->slug;
$brand_term_group = $brand->term_group;
$brand_term_taxonomy = $brand->term_taxonomy_id;
$brand_taxonomy = $brand->taxonomy;
$brand_description = $brand->description;
$brand_parent = $brand->parent;
$brand_count = $brand->count;
$brand_filter = $brand->filter;
$number = $key+1;
$option = 'option-' . $number;
?>
<option value="<?php echo $option; ?>"><?php echo $brand->name; ?></option>
<?php endforeach; ?>
</select>
此代码经过测试并正常工作
我正在尝试从下拉列表中选择一个选项,该选项在单击定位器之前不会填充。这是我在Firebug中看到的: 到目前为止,我拥有的代码是: 我得到一个意外的TagNameException:元素应该是“选择”,但是“div”。我不知道如何处理这个,因为我以前只使用过选择。 假设我想为代理代码选择“523-23-20275”。我该怎么做? 感谢您的帮助!谢谢
我已经通读了所有其他文章,我没有找到我的答案。 我从一个带有对象选项的JOptionPane开始。当用户选择动物或栖息地时,会出现另一个带有选项的下拉列表。现在我正在努力让另一个信息弹出窗口在狮子被选中时打开。但我不能让它工作。 我还查看了其他人的输入,以便能够显示这些下拉列表。但他们使用的是JFrame,因此在NetBeans之外会打开另一个java窗口。 我现在要做的是为下拉列表中的选项输入i
我是硒的新手,我试图从下拉列表中选择一个选项。下拉列表的超文本标记语言如下: WebElement的是: 我已经尝试了几乎所有的方法,我可以在互联网上找到,但没有任何效果。我试图使用类,包装了,但它抛出了一个异常。 我试图丢失列表中的所有选项,但在这种情况下得到了异常应该有标签,但它有。我需要使用作为findelements的标识符。 请帮我解决这个问题。
问题内容: 我创建了一个客户c#DropDownList控件,可以将其内容呈现为optgroup(不是从头开始,我编辑了一些在Internet上找到的代码,尽管我确切地了解了它的作用),并且工作正常。 但是,我现在遇到一种情况,我需要在下拉菜单中有两个缩进级别,即 但是,在上面的示例代码段中,它呈现的缩进量与相同。 有没有一种方法可以产生我想要的嵌套optgroup行为? 问题答案: 好的,如果有
我正在努力尝试从以下下拉菜单中选择一个名为“某些产品”的产品。'id="s2id_autogen81"'是新的ID元素,我使用该ID来抓取项目,但它被更改为这个自动生成值,我不确定要使用量角器抓取什么。 从下拉菜单中选择它 从选择后的下拉列表中
我想在选择另一个select元素的一个选项时显示一个select元素,在选择另一个选项时隐藏它。 这是JavaScript: 感谢任何帮助。谢谢