Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Walker_类别-将类应用于父类别项目_Php_Wordpress_Categories - Fatal编程技术网

Php Walker_类别-将类应用于父类别项目

Php Walker_类别-将类应用于父类别项目,php,wordpress,categories,Php,Wordpress,Categories,下面的代码向所有lis项目添加自定义类 如何对其进行调整以将自定义类添加到作为父类别项的列表项中 在这种情况下,我不能完全确定如何检查类别是否为父类别 class Cat_Walker extends Walker_Category { function start_el( &$output, $category, $depth = 0, $args = array(), $current_object_id = 0 ) { extract($args);

下面的代码向所有lis项目添加自定义类

如何对其进行调整以将自定义类添加到作为父类别项的列表项中

在这种情况下,我不能完全确定如何检查类别是否为父类别

class Cat_Walker extends Walker_Category {
function start_el( &$output, $category, $depth = 0, $args = array(), $current_object_id = 0 ) {
        extract($args);

        $cat_name = esc_attr( $category->name );
        $cat_name = apply_filters( 'list_cats', $cat_name, $category );
        $link = '<a href="' . esc_attr( get_term_link($category) ) . '" ';
        $link .= 'data-filter="' . urldecode($category->slug) . '" ';
        if ( $use_desc_for_title == 0 || empty($category->description) )
                $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s', 'framework' ), $cat_name) ) . '"';
        else
                $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
        $link .= '>';
        $link .= $cat_name . '</a>';

        if ( !empty($feed_image) || !empty($feed) ) {
                $link .= ' ';

                if ( empty($feed_image) )
                        $link .= '(';

                $link .= '<a href="' . get_term_feed_link( $category->term_id, $category->taxonomy, $feed_type ) . '"';

                if ( empty($feed) ) {
                        $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s', 'framework' ), $cat_name ) . '"';
                } else {
                        $title = ' title="' . $feed . '"';
                        $alt = ' alt="' . $feed . '"';
                        $name = $feed;
                        $link .= $title;
                }

                $link .= '>';

                if ( empty($feed_image) )
                        $link .= $name;
                else
                        $link .= "<img src='$feed_image'$alt$title" . ' />';

                $link .= '</a>';

                if ( empty($feed_image) )
                        $link .= ')';
        }

        if ( !empty($show_count) )
                $link .= ' (' . intval($category->count) . ')';

        if ( !empty($show_date) )
                $link .= ' ' . gmdate('Y-m-d', $category->last_update_timestamp);

        if ( 'list' == $args['style'] ) {
                $output .= "\t<li";
                $class = 'cat-item cat-item-' . $category->term_id;

                if ( $category->term_id == $category->parent ) {
                    $class .=  ' true';
                } else {
                    $class .=  ' false';
                }

                if ( !empty($current_category) ) {
                        $_current_category = get_term( $current_category, $category->taxonomy );
                        if ( $category->term_id == $current_category )
                                $class .=  ' current-cat';
                        elseif ( $category->term_id == $_current_category->parent )
                                $class .=  ' current-cat-parent';
                }
                $output .=  ' class="' . $class . '"';
                $output .= ">$link\n";
        } else {
                $output .= "\t$link<br />\n";
        }
}
}
class Cat_Walker扩展了Walker_类别{
函数start_el(&$output,$category,$depth=0,$args=array(),$current_object_id=0){
摘录($args);
$cat\u name=esc\u attr($category->name);
$cat\u name=应用过滤器($list\u cats',$cat\u name,$category);
$link='';
如果(!empty($feed_image)| |!empty($feed)){
$link.='';
if(空($feed_image))
$link.='(';
$link.='';
if(空($feed_image))
$link.=')';
}
如果(!空($show_count))
$link.='('.intval($category->count)。');
如果(!空($show_date))
$link.=''.gmdate('Y-m-d',$category->last\u update\u timestamp);
如果('list'=$args['style']){
$output.=“\t$link\n”;
}否则{
$output.=“\t$link
\n”; } } }
您可以使用来确定给定类别是否有父类别。如果没有,将返回一个。您可以验证是否存在错误

您发布了太多的代码,因此我将简要介绍如何使用这些代码,而不是为您编写一个全新的文件:

<?php

    $parents = get_category_parents( $category->term_id );

    // If it doesn't have a parent (i.e. it IS a parent)...
    if ( is_wp_error( $parents ) ) {
        // Add a class
    }

?>        
我想打印实际包含“has\u children=>1”的r($args)

例:


谢谢。

理想情况下,我希望它能与Walker_类别配合使用。我把那块贴出来作为参考,但我也同意它看起来很可怕。
if ( 'list' == $args['has_children'] ) {
    $class .=  ' has-children';
}