Как отобразить категории сообщений в виде классов

Кажется, я просто слишком глуп, чтобы этого добиться. Кажется, все так просто, но …
Я создал шаблон и попытался отобразить пользовательское портфолио (зарегистрированное пользовательским подключаемым модулем). Это прекрасно работает со следующим кодом:

<div id="container">

<?php

//Define your custom post type name in the arguments
$args = array('post_type' => 'boxes_scientists');

//Define the loop based on arguments
$loop = new WP_Query( $args );

//Display the contents
while ( $loop->have_posts() ) : $loop->the_post();
?>

/*
<?php
foreach((get_the_category()) as $category) {
echo $category->cat_name . ' ';
}
?>

<?php the_category(', '); ?>
*/

<div class="some_base_class [categories of the post need to go here]">

<a class="element" href="<?php the_permalink(); ?>"></a>
<div class="portfolio-box">
<div class="portfolio-naming">
<h2 class="portfolio-title"><?php the_title(); ?></h2>
<h3 class="portfolio-attributes"><?php the_content(); ?></h3>
</div>
</div>

<?php the_post_thumbnail(); ?>

</div>

<?php endwhile;?>

но я не могу работать с закомментированной частью кода и отображать категории внутри тега class моего элемента контейнера (для каждого сообщения, отображаемого в цикле).

Я на самом деле нашел и эту концепцию:

https://lorelle.wordpress.com/2007/09/06/using-wordpress-categories-to-style-posts

казалось, что это именно то, что мне нужно, но, к сожалению, это не сработало для меня. (поместил функцию в functions.php на мою дочернюю тему и тему безрезультатно)

Что я тут недопонимаю? Может кто-нибудь показать мне правильный код, который я должен использовать? Было бы так здорово. Заранее спасибо!

РЕДАКТИРОВАТЬ

Итак, это наконец приводит меня на правильный путь:

<?php
[…]
$category = get_the_category();
$firstCategory = $category[0]->cat_name;?><div class="some_base_class <?php echo $firstCategory ?>">

Я пропустил «эхо» внутри моего div. Теперь мне нужно будет найти способ отображения все категории моего поста вместо только первого.

РЕДАКТИРОВАТЬ 2:

<div id="boxes_section" class="main-content master-section-content nano_boxes no-detect no-padding">
<div class="container">
<div class="row">
<div class="col-md-12 normal-column start-animated-content az-fade-in" data-delay="300">
<div class="blank-divider" style="height: 30px;"></div>

<div id="portfolio-item-section" class="portfolio-output masonry-ly-portfolio classic-module no-pagination" data-cols="3">

<?php

//Define your custom post type name in the arguments
$args = array('post_type' => 'boxes_scientists');

//Define the loop based on arguments
$loop = new WP_Query( $args );

//Display the contents
while ( $loop->have_posts() ) : $loop->the_post();
?><div class="single-portfolio-item az-col-full-width-4 [NEED THE CLASSES HERE]"><a class="classic-portfolio-box normal-type-prt" href="<?php the_permalink(); ?>">
<p class="site_leave"><i class="font-icon-forward"></i>You are going to leave this website</p>
</a>
<div class="portfolio-box">
<div class="portfolio-naming">
<h2 class="portfolio-title"><?php the_title(); ?></h2>
<h3 class="portfolio-attributes"><?php the_content(); ?></h3>
</div>
</div>

<?php the_post_thumbnail(); ?>

</div>

<?php endwhile;?>

</div>
</div>
</div>
</div>
</div>

1

Решение

Я просто пишу код категории в functions.php, как это:

function sps_category(){
$categories = get_the_category();
foreach ( $categories as $category ) {
echo '<a href="'.esc_url( get_category_link( $category->term_id ) ).'">
'.esc_html( $category->cat_name ).'
</a>';
}
}

и я называю свои функции на моей странице

<?php sps_category() ?>

но другими способами,
Вы можете написать свой код в классе, как это:

$categories = get_the_category();
foreach ( $categories as $category ) {
echo '<div class=".esc_attr($category->cat_name)."><a href="'.esc_url( get_category_link( $category->term_id ) ).'">
'.esc_html( $category->cat_name ).'
</a><div>';
}

Он может быть редактируемым и динамичным, если вы хотите показать только 1 категорию.
И не забудьте использовать escape-функцию, если вы поместили несколько php variabel / functions, если вы пишете в attribut html
например использовать esc_attr(somecode) если это атрибут class / title / name / id.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector