- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于似乎没有一个足够的且仍在积极开发的 WordPress 插件可以让我在无需使用小部件的情况下显示可折叠的类别树(我个人不喜欢小部件),因此我决定自己编写一个.
我写了这段代码:
<script type="text/javascript">
function toggleCatDiv(id) {
if (jQuery("#catTogglerDiv-"+id).is(":visible")) {
jQuery("#catToggler-"+id).innerHTML="►";
}
else {
jQuery("#catToggler-"+id).innerHTML="▼";
}
jQuery("#catTogglerDIV-"+id).slideToggle("normal");
}
</script>
<?php
$args = array('orderby' => 'name', 'parent' => 0 );
$categories = get_categories( $args );
foreach ( $categories as $category ) {
?>
<span style="cursor:pointer" id="catToggler-<?php echo $category->cat_ID; ?>" onclick="toggleCatDiv('<?php echo $category->cat_ID; ?>')">►</span> <a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name;?></a><br />
<div id="catTogglerDIV-<?php echo $category->cat_ID; ?>" style="margin-left:3em;visibility:hidden">
<?php
$args = array(
'child_of' => $category->cat_ID
);
$subcats = get_categories($args);
foreach ( $subcats as $subcat ) {
<a href="<?php echo get_category_link( $subcat->term_id ); ?>"><?php echo $subcat->name;?></a>
}
?>
</div>
<?php
}
?>
正如您所见,它的目的是获取“主要类别”列表,并在单击每个类别上的箭头时显示子类别列表。
现在点击箭头什么也不做(甚至不是 JS 错误),并且实际上只显示 4 个主要类别中的 2 个。为什么?
最佳答案
您的代码存在问题:
您有 catTogglerDIV
和 catTogglerDiv
。为您的函数和变量提供有意义且一致的名称,当许多函数和变量具有相似的名称时,很容易迷失方向。
某些类别未显示,因为默认情况下 show_empty
为 true:Function_Reference/get_categories .
即使没有子类别,您也正在运行子类别foreach
。
InnerHTML
对我来说不起作用,已更改为 html()
。
我最喜欢的小部件是文本小部件。为什么?因为我们可以将简码放在那里并执行 any kind of output通过我们的职能。通常,我不做小部件,我做短代码并使用这种技术。
启用此功能需要以下过滤器:
add_filter( 'widget_text', 'do_shortcode', 11 );
<小时/>
还有一个工作示例:
add_shortcode( 'cat_toggle', 'shortcode_so_19260684' );
function shortcode_so_19260684()
{
wp_enqueue_script('jquery'); // Load jQuery only when shortcode present.
# Start the output string
$return = '
<script type="text/javascript">
function doToggle( id )
{
if ( jQuery( "#subCategories-" + id ).is( ":visible" ) )
jQuery( "#catToggler-" + id ).html( "‣" );
else
jQuery( "#catToggler-" + id ).html( "▾" );
jQuery( "#subCategories-" + id ).slideToggle( "normal" );
}
</script>';
$categories = get_categories( array(
'orderby' => 'name',
'parent' => 0,
'hide_empty' => false
));
foreach ( $categories as $category )
{
$subcats = get_categories( array(
'child_of' => $category->cat_ID,
'hide_empty' => false
));
# Maybe useful
if( !$subcats )
$change_the_folding_indicator = 'ø';
$return .= sprintf(
'<span style="cursor:pointer" id="catToggler-%1$s" onclick="doToggle(\'%1$s\')">‣</span> <a href="%2$s">%3$s</a><br />
<div id="subCategories-%1$s" style="margin-left:3em;display:none">',
$category->cat_ID,
get_category_link( $category->term_id ),
$category->name
);
# Add this level only if subcats not empty
if( $subcats )
{
foreach ( $subcats as $subcat )
{
$return .= sprintf(
'<a href="%s">%s</a>',
get_category_link( $subcat->term_id ),
$subcat->name
);
}
}
$return .= '</div>';
}
return $return;
}
关于javascript - 使用 get_categories() 构建动态类别树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260684/
我有一个自定义帖子类型,'ioni_codex'我使用内置的 Wordpress 类别作为分类法 我想列出“ioni_codex”使用的所有类别。 我认为这段代码可以解决问题: $myargs = a
基于 http://codex.wordpress.org/Function_Reference/get_categories 上的示例,我尝试在 wordpress 上运行 get_categori
$args = array( "type" => "post", "orderby" => "name", "order" => "ASC"); $types = ge
由于似乎没有一个足够的且仍在积极开发的 WordPress 插件可以让我在无需使用小部件的情况下显示可折叠的类别树(我个人不喜欢小部件),因此我决定自己编写一个. 我写了这段代码: func
根据WordPress codex , get_categories() 方法接受以下参数作为其 orderby 属性: **orderby** (string) Sort categories al
我正在调用 Woocommerce 类别的列表,并试图让它们以自定义的 darg-and-drop 顺序显示,但无济于事。通常的 'orderby' => 'menu_order' 不起作用。代码如下
我需要用 slug 排序“$product->get_categories()”的结果。 模板使用这段代码: $cat_count = sizeof( get_the_terms( $post->ID
好的,问题相对简单,只是我不确定我做错了什么。 问题: 我有 4 个类别菜单,即 Industry New、Management、Personal博客上的“发展,生产力”: http://radian
我已经为多种帖子类型注册了分类法,认为这是设置网站的最佳方式,而不是重复相同的分类法。 但是,现在我遇到了一个问题,我需要列出一个帖子类型使用的分类法,但它列出所有这两种类型的分类法。我该如何解决这个
我在下面的示例中让 Woocommerce 输出 get_categories 和 get_tags,但需要它们仅为文本。目前,它输出带有类别/标签链接的文本。链接组件可以去掉吗? get_categ
12-15 01:08:43.226 30125-30125/? E/Zygote: MountEmulatedStorage() 12-15 01:08:43.226 30125-30125/? E
我是一名优秀的程序员,十分优秀!