Передача значения аргументов по умолчанию в функцию не работает - PullRequest
0 голосов
/ 23 апреля 2020

Прежде всего, извините за отсутствие знаний в PHP. Я попробовал поискать в поиске ответа, а также попробовал несколько ответов здесь. По какой-то причине передача аргумента в моей функции не работает. Однако, если я напрямую вызываю значение по умолчанию в функции, это работает. Вот функция, которую я использую.

function pnet_breadcrumbs( $seperator = '»', $home = true, $blog = true, $show_hierarchy = true ) {
    global $post, $wp_query;

    $html = '<div class="breadcrumbs" typeof="BreadcrumbList" vocab="http://schema.org/">';
    $position = 1;
    if ( $home ) {
        $html .= '<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Go to ' . get_option( 'blogname' ) . '." href="' . home_url( '/' ) . '" class="home"><span property="name">' . get_option( 'blogname' ) . '</span></a><meta property="position" content="' . $position . '"></span>' . $seperator;
        $html .= '  ' . $seperator . '  '; //Not Working
        $html .= '  &raquo;  '; //Working
        $position = $position + 1;
    }
    if ( is_tax() || is_category() || is_tag() ) {
        $obj = $wp_query->get_queried_object();
        if ( $show_hierarchy ) {
            $ancestors = get_ancestors( $obj->term_id, $obj->taxonomy, 'taxonomy' );
            if ( is_array($ancestors) && !empty($ancestors) ) {
                $ancestors = array_reverse( $ancestors );
                foreach( $ancestors as $ancestor ) {
                    $term_obj = get_term($ancestor);
                    $term_url = get_term_link($term_obj->term_id);
                    $html .= '<span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="' . sprintf( __( 'View Archive for %s.', 'pnet' ), $term_obj->name ) . '." href="' . $term_url . '" class="home"><span property="name">' . $term_obj->name . '</span></a><meta property="position" content="' . $position . '"></span>';
                    $html .= $seperator;
                    $position++;
                }
            }
        }

        $html .= '<span property="itemListElement" typeof="ListItem"><span property="name">' . $obj->name . '</span><meta property="position" content="' . $position . '"></span>';

    }
    if ( is_search() ) {
        $html .= '<span property="itemListElement" typeof="ListItem"><span property="name">' . sprintf( __( 'Search results for %s.', 'pnet' ), get_search_query() ) . '</span><meta property="position" content="' . $position . '"></span>';
    }
    $html .= '</div>';

    echo $html;
}
add_action( 'wp_footer', 'pnet_breadcrumbs', 0 );

Переменная $seperator возвращается пустой.

Я знаю, что это основа c PHP, но я действительно не могу понять, почему я не могу использовать значение по умолчанию. Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...