WPML
Статус
Решено автором
Решено в
BetterDocs Pro v3.0.1
Связанный плагин/тема
BetterDocs
Теги темы
Compatibility

Обзор проблемы

Если Вы используете плагин BetterDocs Pro, то заметите, что слаг базы знаний некорректно переводится на странице категории. При переключении между языками слаг терминов базы знаний не отражает изменение языка, что приводит к несогласованным URL-адресам на странице категории.

Обходное решение

Перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/wp-content/plugins/betterdocs-pro/includes/Traits/MKB.php.

  • Найдите строку 21.

  • Замените:
    public function kb_terms( $term, $taxonomy ) {
        $current_term = get_term_by( 'slug', $term->slug, $taxonomy, OBJECT );
        $_term_attr   = get_term_meta( $current_term->term_id, 'doc_category_knowledge_base', true );
    
        if ( ! empty( $_term_attr ) ) {
            $_term_attr = array_values( array_filter($_term_attr, function( $item ){
                return ! empty( $item );
            }) );
        }
    
        return $_term_attr;
    }

  • На:
    public function kb_terms( $term, $taxonomy ) {
        $current_term = get_term_by( 'slug', $term->slug, $taxonomy, OBJECT );
        $_term_attr   = get_term_meta( $current_term->term_id, 'doc_category_knowledge_base', true );
        
        // WPML Workaround for compsupp-6478
        if ( class_exists('Sitepress') ) {
            $_term_attr   = get_term_meta( $term->term_id, 'doc_category_knowledge_base', true );
        }
        
        if ( ! empty( $_term_attr ) ) {
            $_term_attr = array_values( array_filter($_term_attr, function( $item ){
                return ! empty( $item );
            }) );
        }
    
        return $_term_attr;
    }

Все известные проблемы →