Вопрос: Я не знаю, почему категории отображаются ниже сообщения

Я создал функцию, которая показывает список категорий. Когда я вызываю его над заголовком записи, он также отображается под контентом, даже если я его там не называю.

Кроме того, категории дублируются, например, наша категория новостей отображается три раза.

Мой код выглядит следующим образом.

 if (!function_exists('category_renown')) :    function category_renown() {        $categories = get_the_category_list( esc_html__( ' ', 'openblogger' ));        if ( $categories ) {                printf( '<span class="catu-links">' . esc_html__( '%1$s', 'openblogger' ) . '</span>', $categories ); //WPCS: XSS OK.            }    }endif;

Любая помощь будет оценена. Я отметил, что связанные посты делают все, но все еще не находят решения.

<?php//Adds custom image size for images in Related Posts section.add_image_size( 'related', 400, 222, true );//add_action( 'after_entry_footer', 'wg_related_posts', 12 );function wg_related_posts() {    global $do_not_duplicate;    //If we are not on a single post page, abort.    if ( ! is_singular( 'post' ) ) {        return;    }    global $count;    $count = 0;    $related = '';    $do_not_duplicate = array();    //Get the tags for the current post.    $tags = get_the_terms( get_the_ID(), 'post_tag' );    //Get the categories for the current post.    $cats = get_the_terms( get_the_ID(), 'category' );    //If we have some tags, run the tag query.    if ( $tags ) {        $query    = wg_related_tax_query( $tags, $count, 'tag' );        $related .= $query['related'];        $count    = $query['count'];    }    //If we have some categories and less than 3 posts, run the cat query.    if ( $cats && $count <= 2 ) {        $query    = wg_related_tax_query( $cats, $count, 'category' );        $related .= $query['related'];        $count    = $query['count'];    }    //End here if we don't have any related posts.    if ( ! $related ) {        return;    }    //Display the related posts section.    echo '<div class="related">';     if (get_theme_mod('related_posts-title') != ""){     echo '<h3 class="related-title">'.get_theme_mod('related_posts-title').'</h3>'; } else { echo '<h3 class="related-title">Related Posts</h3>'; }        echo '<div class="related-posts">' . $related . '</div>';    echo '</div>';}/** * The taxonomy query. * * @since  1.0.0 *  * @param  array  $terms Array of the taxonomy's objects. * @param  int    $count The number of posts. * @param  string $type  The type of taxonomy, e.g: `tag` or `category`. * * @return string */function wg_related_tax_query( $terms, $count, $type ) {    global $do_not_duplicate;    //If the current post does not have any terms of the specified taxonomy, abort.    if ( ! $terms ) {        return;    }    //Array variable to store the IDs of the posts.    //Stores the current post ID to begin with.    $post_ids = array_merge( array( get_the_ID() ), $do_not_duplicate );    $term_ids = array();    //Array variable to store the IDs of the specified taxonomy terms.    foreach ( $terms as $term ) {        $term_ids[] = $term->term_id;    }    $tax_query = array(        array(            'taxonomy'  => 'post_format',            'field'     => 'slug',            'terms'     => array(                'post-format-link',                'post-format-status',                'post-format-aside',                'post-format-quote',            ),            'operator' => 'NOT IN',        ),    ); if (get_theme_mod('related-number') != ""){    echo $showposts = get_theme_mod('related-number', 3 - $count);} else {     $showposts = 3 - $count; }    //$showposts = 3 - $count;    $args = array(        $type . '__in'        => $term_ids,        'post__not_in'        => $post_ids,        'showposts'           => $showposts,        'ignore_sticky_posts' => 1,        'tax_query'           => $tax_query,    );    $related  = '';    $tax_query = new WP_Query($args);    if ( $tax_query->have_posts() ) {        while ( $tax_query->have_posts() ) {            $tax_query->the_post();            $do_not_duplicate[] = get_the_ID();            $count++;            $title = get_the_title();            $related .= '<div class="related-post">';            $related .= '<a href="' . get_permalink() . '" rel="bookmark" title="Permanent Link to ' . $title . '">'.get_the_post_thumbnail() . '</a>';            $related .= '<div class="related-post-info"><a class="related-post-title" href="' . get_permalink() . '" rel="bookmark" title="Permanent Link to ' . $title . '">' . $title . '</a>';            $related .= '<div class="related-post-date">' . get_the_date() . '</div>';            $related .= '<div class="related-post-tags">' . related_tags() . '</div>';            $related .= '<div class="related-post-categories">'. related_categories() . '</div></div>';            $related .= '</div>';        }    }    $sep = ',';    wp_reset_postdata();    $output = array(        'related' => $related,        'count'   => $count,    );    return $output;}

это предварительный просмотр в реальном времени. image

<

Ответы и комментарии:

да, чтобы сделать разработку темы проще, я использовал подчеркивание. Я использую тот же код, и я так, но проблема сохраняется. Я не знаю, почему это показывает ниже сообщения. Помните, что все хорошо, но показывает содержание ниже
Создан 24-08-2018 03:06 Raashid Din

внесите некоторые изменения (например, вставьте абзац) в файл content.php, чтобы убедиться, что он использует этот файл для отображения сообщений. Если это правильный файл, вы увидите этот текст в браузере при просмотре сообщения. и попробуйте просматривать в режиме инкогнито, иногда это может быть проблема с кешем
Создан 24-08-2018 04:47 maverick

также убедитесь, что вы удалили код для отображения списка категорий внутри функции xyz_entry_footer () (в вашем случае внутри функции openblogger_entry_footer ())
Создан 24-08-2018 04:59 maverick

вся проблема создана related_posts. я загружаю код, пожалуйста, проверьте
Создан 24-08-2018 04:40 Raashid Din

где вы вызываете функцию wg_related_tax_query ()?
Создан 24-08-2018 04:13 maverick


Я предположил, что вы используете undersocres тему, чтобы построить свои темы
и вы, наверное, скопировали код из папки template-tags.php внутри Inc в вашу тему.
Теперь сделать это:
сохранить этот код внутри template-tags.php
category_renown функция() {
$категории = get_the_category_list( Эку_HTML-код__( ' ', 'openblogger' ));
если ( $категориях ) {
функции printf( '<промежуток класс="Кату-ссылки">' . Эку_HTML-код__( '%1$ы', 'openblogger' ) . 'на', $категориям ); // ЦПЖ: XSS на ОК.
}
}

скопируйте свои функции внутри файла content.php как:
это содержимое файла content.php
<?в PHP
/**
* Шаблон для отображения записей
*
* @ссылка https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @пакет XYZ
*/

?>

<код статьи="после<?на PHP the_ID(); ?>" <?на PHP post_class(); ?>>
<заголовок класса="запись-заголовок">
<?РНР category_renown(); ?>
<?в PHP
если ( is_singular() ) :
the_title( '<Н1 класс="элемент-заголовок">', 'Н1>' );
другое :
the_title( '<Н2 класс="элемент-заголовок"><а href="' . esc_url( get_permalink() ) . '" относительной="закладку">', 'иН2>' );
за endif;

если ( 'должность' === get_post_type() ) :
?>
<див класс="элемент-мета">
<?в PHP
xyz_posted_on();
xyz_posted_by();
?>
тег
<?РНР за endif; ?>
заголовок>

<?РНР xyz_post_thumbnail(); ?>

<див класс="элемент-контент">
<?в PHP
the_content( функции sprintf(
wp_kses(
/* переводчики: %ы: название текущего поста. Видно только на экране читателей */
__( 'Читать далее<промежуток класс="экран-читатель-текст"> "%ы"на', 'АБВ' ),
массив(
'промежуток' => массив(
'класс' => массив(),
),
)
),
get_the_title()
) );

wp_link_pages( массив(
'перед' => '<див класс="страница-ссылки">' . Эку_HTML-код__( 'страницы:', 'АБВ' ),
'после' => 'дел>',
) );
?>
тег

<футера класс="элемент-нижний колонтитул">
<?РНР xyz_entry_footer(); ?>
Примечание>
артикул>

теперь вам нужно удалить следующий код template-tags.php файл внутри xyz_entry_footer функции():
$категории = get_the_category_list( Эку_HTML-код__( ' ', 'openblogger' ));
если ( $категориях ) {
функции printf( '<промежуток класс="Кату-ссылки">' . Эку_HTML-код__( '%1$ы', 'openblogger' ) . 'на', $категориям ); // ЦПЖ: XSS на ОК.
}

окончательный вариант template-tags.php должно быть:
<?в PHP
/**
* Пользовательский шаблон теги для этой темы
*
* В конце концов, некоторые функции здесь могут быть заменены основные функции.
*
* @пакет XYZ
*/

если ( ! function_exists( 'xyz_posted_on' ) ) :
/**
* Печати HTML-файла с мета-информацией для текущей записи-дата/время.
*/
xyz_posted_on функция() {
$time_string = '<время класс="элемент-дата публикации обновлено" типа datetime="%1$S"В>С%2$sвремя>';
если ( get_the_time( 'у' ) !== get_the_modified_time( 'у' ) ) {
$time_string = '<время класс="элемент-дата публикации" типа datetime="%1$S"с>с%2$sвремя><время класс="обновленный" типа datetime="%3$S"с>%4$ывремя>';
}

$time_string = функции sprintf( $time_string,
esc_attr( get_the_date( DATE_W3C ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( DATE_W3C ) ),
esc_html( get_the_modified_date() )
);

$posted_on = функции sprintf(
/* переводчики: %с: дата пост. */
esc_html_x (размещены на %S', 'дата публикации', 'АБВ' ),
'<а href="' . esc_url( get_permalink() ) . '" рел="закладка">' . $time_string . 'а>'
);

Эхо '<промежуток класс="разместил на">' . $posted_on . 'на'; // ЦПЖ: XSS на ОК.

}
за endif;

если ( ! function_exists( 'xyz_posted_by' ) ) :
/**
* Печати HTML-файла с мета-информацией для текущего автора.
*/
xyz_posted_by функция() {
$подписью = функции sprintf(
/* переводчики: %s: автор поста. */
esc_html_x( 'на %S', 'автор поста', 'АБВ' ),
'<промежуток класс="автор" ВВК " "><класс="ссылка на ФН н" с href="' . esc_url( get_author_posts_url( get_the_author_meta (ИД' ) ) ) . '">' . esc_html( get_the_author() ) . 'а>пролет>'
);

Эхо '<промежуток класс="подпись"> ' . $авторство . 'на'; // ЦПЖ: XSS на ОК.

}
за endif;

если ( ! function_exists( 'xyz_entry_footer' ) ) :
/**
* Печати HTML-файла с мета данные для категорий, тегов и комментариев.
*/
xyz_entry_footer функция() {
// Скрыть текст пометки на страницах.
если ( 'должность' === get_post_type() ) {

/* переводчики: между элементами списка, есть пробел после запятой */
$tags_list = get_the_tag_list( ", esc_html_x( ', ', 'списка разделитель', 'АБВ' ) );
если ( $tags_list ) {
/* переводчики: 1: список тегов. */
функции printf( '<промежуток класс="теги-ссылки">' . Эку_HTML-код__( 'меченых %1$ы', 'АБВ' ) . 'на', $tags_list ); // ЦПЖ: XSS на ОК.
}
}

если ( ! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) {
Эхо '<промежуток класс="комментариях-ссылка">';
comments_popup_link(
функции sprintf(
wp_kses(
/* переводчики: %с: после заголовка */
__( 'Оставить отзыв<промежуток класс="экран-читатель-текст"> на %Sпролет>', 'АБВ' ),
массив(
'промежуток' => массив(
'класс' => массив(),
),
)
),
get_the_title()
)
);
Эхо 'пролет>';
}

edit_post_link(
функции sprintf(
wp_kses(
/* переводчики: %ы: название текущего поста. Видно только на экране читателей */
__( 'Редактировать <промежуток класс="экран-читатель-текст">%хпролет>', 'АБВ' ),
массив(
'промежуток' => массив(
'класс' => массив(),
),
)
),
get_the_title()
),
'<промежуток класс="редактировать-ссылка">',
'пролет>'
);
}
за endif;

category_renown функция() {
$категории = get_the_category_list( Эку_HTML-код__( ' ', 'openblogger' ));
если ( $категориях ) {
функции printf( '<промежуток класс="Кату-ссылки">' . Эку_HTML-код__( '%1$ы', 'openblogger' ) . 'на', $категориям ); // ЦПЖ: XSS на ОК.
}
}
если ( ! function_exists( 'xyz_post_thumbnail' ) ) :
/**
* Отображает дополнительный пост миниатюру.
*
* Обертывания пост миниатюру на якорь элемент в представлениях индекс, или див
* элемент, когда на один вид.
*/
xyz_post_thumbnail функция() {
если ( post_password_required() || is_attachment() || ! has_post_thumbnail() ) {
возврат;
}

если ( is_singular() ) :
?>

<див класс="пост-миниатюру">
<?на PHP the_post_thumbnail(); ?>
тег

<?на PHP еще : ?>

<класс="пост-миниатюру" с href="<?на PHP the_permalink(); ?>" Ария-скрытые="истинный" свойство tabindex="-1">
<?в PHP
the_post_thumbnail( 'пост-Ленфильм', массив(
'альт' => the_title_attribute( массив(
'Эхо' => false,то
) ),
) );
?>
а>

<?в PHP
за endif; // конец is_singular().
}
за endif;

Я просто предположил, что вы создаете тему, используя подчеркивает тему. Если нет, пожалуйста, добавить больше кода ( где вы вызываете эту функцию )
еще одна вещь вы можете сделать дополнительные изменения в тему, так что будьте осторожны, прежде чем скопировать и вставить этот код.
Создан 24-08-2018 04:02