WordPress показать текущую категорию дочерней функции - PullRequest
0 голосов
/ 15 февраля 2011

wordpress имеет функцию the_category(''); для показа всех категорий, назначенных для текущего сообщения, но мне нужно, чтобы текущая категория была только дочерней, а не отображать родителя.

например, мой пост имеет категорию категории родительский ->категория child и the_category;напечатать: ваш пост cat: (категория родительский, категория дочерний)

Мне нужен parint, ваш пост cat: (категория дочерний) и не отображать родителя.

Ответы [ 4 ]

3 голосов
/ 15 февраля 2011

Используйте функцию get_the_category , ведьма вернет все категории, присвоенные сообщению (это означает, что все родители и дети тоже), так что вы можете просмотреть их, увидеть, что один из них является родителем, а один - дочерним и распечататьтот, который вы пытаетесь получить.Я предлагаю вам создать функцию в файле функций вашей темы.


Обновление

Например, допустим, вы хотите отобразить имя дочерней категории в своей теме single.phpфайл, чтобы вы могли сделать это:

<?php $child_category = post_child_category(get_the_ID()); ?>
<?php if ( $child_category ) echo $child_category->cat_name; ?>

Чтобы это работало, вам нужно определить функцию post_child_category в вашем файле функций темы (если вы посмотрите в свой каталог тем, высм. файл functions.php, если нет, то вы можете создать его сейчас), поэтому добавьте следующее:

if ( ! function_exists( 'post_child_category' ) )
{
    function post_child_category( $id = null )
    {
        if ( $id = null )
            return false;

        $categories = get_the_category( $id );
        if ( count($categories) > 0 )
        {
            return $categories[count($categories)-1];
        } else {
            return false;
        }
    }
}

Обновление

Если вы хотите отобразить категориюссылку вы бы сделали так:

<?php $child_category = post_child_category(get_the_ID()); ?>
    <?php if ( $child_category ) : ?>
        <a href="<?php echo get_category_link($child_category->cat_ID); ?>" title="<?php echo $child_category->cat_name;?>">
            <?php echo $child_category->cat_name;?>
        </a>
    <?php endif;?>
1 голос
/ 03 сентября 2012
<ul>    
<?php
        $blogCategoryID = "5"; // current category ID
        $childCatID = $wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE parent=$blogCategoryID");
        if ($childCatID){
            foreach ($childCatID as $kid)
            {
                $childCatName = $wpdb->get_row("SELECT name, term_id FROM $wpdb->terms WHERE term_id=$kid");
                ?>
                <li><a href="<?php echo get_category_link( $childCatName->term_id ); ?>"><?php echo $childCatName->name; ?></a></li>
           <?php
            }
        }

    ?>
</ul>
0 голосов
/ 06 апреля 2019

это сработало для меня

$catID=$wp_query->query_vars['cat'];
$args = array('parent' => $catID);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<li><a href="' . get_category_link( $category->term_id ) . '"  ' . '>' . $category->name.'</a> </li> ';
}
0 голосов
/ 15 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...