Php 如何按组对分类法进行分组
我正在处理一个页面,其中我使用了一个带有2个自定义分类法的自定义帖子类型。我的自定义帖子类型称为“series”,我的自定义分类法称为“temporada”和“capitulo” 我想列出所有的时间单位,但将它们与各自的大写字母组合在一起 所以要说清楚,我有两个临时的。(1)有(7头) (2)有(11头) 我想把所有的卡皮图洛和他们各自的时间进行分组 我正在使用这个代码:Php 如何按组对分类法进行分组,php,wordpress,wordpress-theming,taxonomy,custom-taxonomy,Php,Wordpress,Wordpress Theming,Taxonomy,Custom Taxonomy,我正在处理一个页面,其中我使用了一个带有2个自定义分类法的自定义帖子类型。我的自定义帖子类型称为“series”,我的自定义分类法称为“temporada”和“capitulo” 我想列出所有的时间单位,但将它们与各自的大写字母组合在一起 所以要说清楚,我有两个临时的。(1)有(7头) (2)有(11头) 我想把所有的卡皮图洛和他们各自的时间进行分组 我正在使用这个代码: <?php $temporada = 'temporada'; $capitulo = 'capitulo'; $t
<?php
$temporada = 'temporada';
$capitulo = 'capitulo';
$tax_temporada = get_terms($temporada);
$tax_capitulos = get_terms($capitulo);
for ($i = 0; $i < count($tax_temporada); $i++) {
echo '<div class="panel panel-default">';
echo '<div class="panel-heading" role="tab" id="c'. $tax_capitulos[$i]->name.'">';
echo '<h4 class="panel-title">' . '<a data-toggle="collapse" data-parent="#accordion" href="#'. $tax_temporada[$i]->name.'" aria-expanded="true" aria-controls="' . $tax_temporada[$i]->name.'" >Temporada: ' . $tax_temporada[$i]->name.'</a></h4>';
echo '</div>';
echo '<div id="'. $tax_temporada[$i]->name.'" class="panel-collapse collapse" role="tabpanel" aria-labelledby="c'. $tax_capitulos[$i]->name.'">';
echo '<div class="panel-body">';
foreach ($tax_capitulos as $tax_capitulo) {
echo '<li>' . '<a href="' . esc_attr(get_term_link($tax_capitulo, $taxonomy)) . '" title="' . sprintf( __( "View all posts in %s" ), $tax_capitulo->name ) . '" ' . '>Capitulo: ' . $tax_capitulo->name.'</a></li>';
}
echo '</div>'.'</div>'.'</div>';
}
?>
任何帮助或建议都将不胜感激。我花了一些时间,但我能看到你的问题 您的内部循环是一个友好的
foreach
(我更喜欢foreach
而不是for
),但它循环了所有$tax\u capitalulos
,因为您没有告诉它如何只找到与$tax\u temporada
相关的$tax\u capitalulos
您描述系统$tax\u capitalulos
的方式由$tax\u temporada
分组或属于$tax\u temporada>但您的代码并未反映这一点。我对系统的了解程度不足以了解对象之间的关系,但我希望看到以下方面的相关信息:
foreach ($tax_temporada->tax_capitulos as $tax_capitulo) {
// etc
}
或
或
或者定义关系的东西。我怀疑这就是你的数据格式的工作原理,但我希望你明白我在这里得到了什么
目前,您将获得每个$tax\u-capitalulos
下列出的所有$tax\u-temporada
,因为这是您的代码告诉它的
我希望这对你有所帮助。这就是我在回答您的问题时所能做的,而不必对您更广泛的代码库有更多的了解。我使用了两种自定义分类法,一种是temporada(季节),一种是capitulo(章节)。我的问题是您描述的“您的代码没有反映这一点”。我尝试了一些不同的方法,但出现了错误。我添加了更多用于显示分类法的代码,我希望这些代码对您有所帮助。
register_taxonomy(
'temporada',
array('series' ),
array('hierarchical' => false,
// This array of options controls the labels displayed in the WordPress Admin UI
'labels' => array(
'name' => _x( 'Temporada', 'taxonomy general name' ),
'singular_name' => _x( 'Temporada', 'taxonomy singular name' ),
'search_items' => __( 'Buscar Temporadas' ),
'all_items' => __( 'TodosTemporada las Temporadas' ),
'parent_item' => __( 'Parent Temporadas' ),
'parent_item_colon' => __( 'Parent Temporadas:' ),
'edit_item' => __( 'Editar Temporadas' ),
'update_item' => __( 'Actualizar Temporadas' ),
'add_new_item' => __( 'Agregar Nueva Temporadas' ),
'new_item_name' => __( 'Nuevo Temporadas Nombre' ),
'menu_name' => __( 'Temporada' ),
'separate_items_with_commas' => __( 'Temporada del capitulo, Ej: 1, 2', 'cc' ),
'choose_from_most_used' => __( 'Buscar entre los mas Usados', 'cc' ),
),
// Control the slugs used for this taxonomy
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => false,
));
register_taxonomy(
'capitulo',
array('series' ),
array('hierarchical' => false,
// This array of options controls the labels displayed in the WordPress Admin UI
'labels' => array(
'name' => _x( 'Capitulo', 'taxonomy general name' ),
'singular_name' => _x( 'capitulo', 'taxonomy singular name' ),
'search_items' => __( 'Buscar capitulo' ),
'all_items' => __( 'Todos las capitulo' ),
'parent_item' => __( 'Parent capitulo' ),
'parent_item_colon' => __( 'Parent capitulo:' ),
'edit_item' => __( 'Editar capitulo' ),
'update_item' => __( 'Actualizar capitulo' ),
'add_new_item' => __( 'Agregar Nueva capitulo' ),
'new_item_name' => __( 'Nuevo Nombre Capitulo' ),
'menu_name' => __( 'Capitulo' ),
'separate_items_with_commas' => __( 'Capitulo, Ej: 1, 2', 'cc' ),
'choose_from_most_used' => __( 'Buscar entre los mas Usados', 'cc' ),
),
// Control the slugs used for this taxonomy
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => false,
));
}
add_action( 'init', 'serie_custom_taxonomies', 0 );
foreach ($tax_temporada->tax_capitulos as $tax_capitulo) {
// etc
}
foreach ($tax_capitulos[$tax_temporada[$i]] as $tax_capitulo) {
// etc
}
foreach (get_tax_capitulos($tax_temporada[$i]) as $tax_capitulo) {
// etc
}