Wp_list_ategory与自定义分类有关的问题

时间:2018-05-16 作者:Fibonacci

我有一个自定义的层次分类法,我想在下拉菜单中列出分类法中包含post的所有顶级“类别”。

在我的功能中。php我添加了以下代码:

function get_terms_dropdown_tm( $taxonomies, $args ) {
    $args       = array(
        \'orderby\'    => \'name\',
        \'show_count\' => 1,
        \'order\'      => \'DESC\',
        \'hide_empty\' => 1
    );
    $myterms    = get_terms( $taxonomies, $argo );
    $output     = "<select name=\'tassonomia_marca\'>";
    $output    .= "<option value=\'#\'>Seleziona la marca</option>";

    foreach($myterms as $term){
        $root_url       = get_bloginfo(\'url\');
        $term_taxonomy  = $term->taxonomy;
        $term_slug      = $term->slug;
        $term_name      = $term->name;
        $link           = $term_slug;
        $output        .= "<option value=\'" . $link . "\'>" . $term_name . "</option>";
    }

    $output .= "</select>";

    return $output;
}
在调用此函数的页面中,我有以下代码。

$taxonomies = array( \'tassonomia_marca\' );
$select     = get_terms_dropdown_tm( $args, $taxonomies );
$select     = preg_replace( "#<select([^>]*)>#", "<select$1 onchange=\'return this.form.submit()\'>", $select );
echo $select;
问题是,WP没有使用$参数并在下拉菜单中重新填充所有类别,也没有post计数

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

这里的代码有一些问题。

对该函数的调用的参数混淆了。$args 首先传递给函数,但在函数定义中,它们应该是第二个传递的$argo 到$argsforeach 循环您正在生成许多您没有使用的东西在这里,我简化了您的代码,只采用1个分类法,而不是多个分类法。它调用wp_parse_args() 所以你什么都不能传给$args 参数或任何要覆盖默认数组的内容。这个foreach 据我所知,你只需要弹头和标题。最后,我们使用条件检查来包装循环,以确保我们有条件进行循环:

function get_terms_dropdown_tm( $taxonomy, $args = array() ) {

    $args = wp_parse_args( $args, array(
        \'orderby\'    => \'name\',
        \'show_count\' => 1,
        \'order\'      => \'DESC\',
        \'hide_empty\' => 1
    ) );
    $myterms    = get_terms( $taxonomy, $args );
    $output     = sprintf( \'<select name="%1$s">\', esc_attr( sanitize_text_field( $taxonomy ) ) );
    $output    .= "<option value=\'#\'>Seleziona la marca</option>";

    if( ! is_wp_error( $myterms ) ) {

        foreach( $myterms as $term ) {
            $output .= sprintf( \'<option value="%1$s">%2$s</option>\', $term->slug, $term->name );
        }

    }

    $output .= "</select>";

    return $output;
}
电话:

$taxonomy   = \'tassonomia_marca\';
$select     = get_terms_dropdown_tm( $taxonomy );
$select     = preg_replace( "#<select([^>]*)>#", "<select$1 onchange=\'return this.form.submit()\'>", $select );
echo $select;

结束

相关推荐

Inserting two categories

我试图在一篇文章中同时定义两个类别。请告诉我哪里做错了。\'post_author\' => $user_id, \'post_status\' => \'pending\', \'post_category\' => array($_POST[\'cat\'],$_POST[\'joblocation\']) //\'taxonomy\' =>