将带有自定义字段的类别列表拆分为两列(Wordpress)
Split categories list with custom field into two columns (Wordpress)
我正在尝试将类别列表分为两列。每个类别都有一个使用 ACF 创建的自定义字段 ("color")。到目前为止一切顺利,我可以使用以下代码在单列中获取列表:
<?php
$args = array( 'hide_empty' => '0');
$categories = get_categories($args);
if($categories){
echo '<div class="col"><ul class="cat-list">';
foreach($categories as $category) {
$color = get_field('color', 'category_'.$category->term_id);
echo '<li style="background-color:'.$color.'">';
echo '<a href="';
echo esc_url( get_category_link( $category->term_id ) );
echo '">';
echo $category->name;
echo '</a>';
echo '</li>';
}
echo '</ul></div>';
}
?>
现在我正在尝试使用 wp_list_categories 获取列表(提示:https://wpsquare.com/display-wordpress-categories-two-columns/)。这可以作为两列问题的解决方案,但是使用这种方法我无法从类别自定义字段中检索值。
提前致谢。
$categories
是一个数组。您可以使用数组做的一件很棒的事情是...查看其中有多少项,然后使用简单的 for 循环遍历它们。
<?php
$args = array( 'hide_empty' => '0');
$categories = get_categories($args);
if(!empty($categories)) {
$last_category_nr = count($categories) - 1;
$last_in_first_column = ceil($last_category_nr / 2);
?>
<div class="col">
<ul class="cat-list">
<?php
for ($i = 0; $i <= $last_in_first_column; $i++) {
$category = $categories[$i];
$color = get_field('color', $category);
$link = esc_url( get_category_link( $category->term_id ) );
$name = $category->name;
?>
<li style="background-color: <?php echo $color; ?>">
<a href="<?php echo $link; ?>">
<?php echo $name; ?>
</a>
</li>
<?php
}
?>
</ul>
</div>
<div class="col">
<ul class="cat-list">
<?php
for ($i = $last_in_first_column + 1; $i <= $last_category_nr; $i++) {
$category = $categories[$i];
$color = get_field('color', $category);
$link = esc_url( get_category_link( $category->term_id ) );
$name = $category->name;
?>
<li style="background-color: <?php echo $color; ?>">
<a href="<?php echo $link; ?>">
<?php echo $name; ?>
</a>
</li>
<?php
}
?>
</ul>
</div>
}
?>
我正在尝试将类别列表分为两列。每个类别都有一个使用 ACF 创建的自定义字段 ("color")。到目前为止一切顺利,我可以使用以下代码在单列中获取列表:
<?php
$args = array( 'hide_empty' => '0');
$categories = get_categories($args);
if($categories){
echo '<div class="col"><ul class="cat-list">';
foreach($categories as $category) {
$color = get_field('color', 'category_'.$category->term_id);
echo '<li style="background-color:'.$color.'">';
echo '<a href="';
echo esc_url( get_category_link( $category->term_id ) );
echo '">';
echo $category->name;
echo '</a>';
echo '</li>';
}
echo '</ul></div>';
}
?>
现在我正在尝试使用 wp_list_categories 获取列表(提示:https://wpsquare.com/display-wordpress-categories-two-columns/)。这可以作为两列问题的解决方案,但是使用这种方法我无法从类别自定义字段中检索值。
提前致谢。
$categories
是一个数组。您可以使用数组做的一件很棒的事情是...查看其中有多少项,然后使用简单的 for 循环遍历它们。
<?php
$args = array( 'hide_empty' => '0');
$categories = get_categories($args);
if(!empty($categories)) {
$last_category_nr = count($categories) - 1;
$last_in_first_column = ceil($last_category_nr / 2);
?>
<div class="col">
<ul class="cat-list">
<?php
for ($i = 0; $i <= $last_in_first_column; $i++) {
$category = $categories[$i];
$color = get_field('color', $category);
$link = esc_url( get_category_link( $category->term_id ) );
$name = $category->name;
?>
<li style="background-color: <?php echo $color; ?>">
<a href="<?php echo $link; ?>">
<?php echo $name; ?>
</a>
</li>
<?php
}
?>
</ul>
</div>
<div class="col">
<ul class="cat-list">
<?php
for ($i = $last_in_first_column + 1; $i <= $last_category_nr; $i++) {
$category = $categories[$i];
$color = get_field('color', $category);
$link = esc_url( get_category_link( $category->term_id ) );
$name = $category->name;
?>
<li style="background-color: <?php echo $color; ?>">
<a href="<?php echo $link; ?>">
<?php echo $name; ?>
</a>
</li>
<?php
}
?>
</ul>
</div>
}
?>