我不能调用自定义帖子类型的类别

时间:2018-01-25 作者:Lucas Matos

This is my code that I used in the functions.php

add_action( \'init\', \'register_cpt_video\' );
function register_cpt_video() {
    $labels = array(
        \'name\'                      => __( \'Videos\', \'video\' ),
        \'singular_name\'             => __( \'Video\', \'video\' ),
        \'add_new\'                   => __( \'Añadir nuevo\', \'video\' ),
        \'add_new_item\'              => __( \'Añadir nuevo video\', \'video\' ),
        \'edit_item\'                 => __( \'Editar video\', \'video\' ),
        \'new_item\'                  => __( \'Nuevo video\', \'video\' ),
        \'view_item\'                 => __( \'Ver video\', \'video\' ),
        \'search_items\'              => __( \'Buscar videos\', \'video\' ),
        \'not_found\'                 => __( \'No se encontraron videos\', \'video\' ),
        \'not_found_in_trash\'        => __( \'No se encontraron videos en la papelera\', \'video\' ),
        \'parent_item_colon\'         => __( \'Parent Video:\', \'video\' ),
        \'menu_name\'                 => __( \'Video\', \'video\' ),
    );
    $args = array(
        \'labels\'                    => $labels,
        \'hierarchical\'              => false,
        \'supports\'                  => array( \'title\', \'editor\', \'thumbnail\' ),
        \'public\'                    => true,
        \'show_ui\'                   => true,
        \'show_in_menu\'              => true,
        \'menu_position\'             => 5,
        \'menu_icon\'                 => \'dashicons-format-video\',
        \'show_in_nav_menus\'         => true,
        \'publicly_queryable\'        => true,
        \'exclude_from_search\'       => false,
        \'has_archive\'               => true,
        \'query_var\'                 => true,
        \'can_export\'                => true,
        \'rewrite\'                   => true,
        \'capability_type\'           => \'post\'
    );
    register_post_type( \'video\', $args );

    $labels = array(
        \'name\'                  => _x( \'Categorías de video\', \'Nombre de categoría de proyectos\', \'video\' ),
        \'singular_name\'         => _x( \'Categoría\', \'Nombre de categoría de proyecto\', \'video\' ),
        \'search_items\'          => __( \'Buscar categorías\', \'video\' ),
        \'all_items\'             => __( \'Todas las categorías\', \'video\' ),
        \'parent_item\'           => __( \'Categoría superior\', \'video\' ),
        \'parent_item_colon\'     => __( \'Categoría superior:\', \'video\' ),
        \'edit_item\'             => __( \'Editar categoría\', \'video\' ),
        \'update_item\'           => __( \'Actualizar categoría\', \'video\' ),
        \'add_new_item\'          => __( \'Añadir nueva categoría\', \'video\' ),
        \'new_item_name\'         => __( \'Nueva categoría\', \'video\' ),
        \'menu_name\'             => __( \'Categorías\', \'video\' ),
    );
    register_taxonomy(
        \'categoria-video\', array( \'video\' ), array(
            \'hierarchical\'          => true,
            \'labels\'                => $labels,
            \'show_ui\'               => true,
            \'show_admin_column\'     => true,
            \'query_var\'             => true,
        )
    );

    $labels = array(
        \'name\'                  => _x( \'Etiquetas de video\', \'Nombre de etiqueta de proyectos\', \'video\' ),
        \'singular_name\'         => _x( \'Etiqueta\', \'Nombre de etiqueta de proyecto\', \'video\' ),
        \'search_items\'          => __( \'Buscar etiquetas\', \'video\' ),
        \'all_items\'             => __( \'Todas las etiquetas\', \'video\' ),
        \'parent_item\'           => __( \'Etiqueta superior\', \'video\' ),
        \'parent_item_colon\'     => __( \'Etiqueta superior:\', \'video\' ),
        \'edit_item\'             => __( \'Editar etiqueta\', \'video\' ),
        \'update_item\'           => __( \'Actualizar etiqueta\', \'video\' ),
        \'add_new_item\'          => __( \'Añadir nueva etiqueta\', \'video\' ),
        \'new_item_name\'         => __( \'Nueva etiqueta\', \'video\' ),
        \'menu_name\'             => __( \'Etiquetas\', \'video\' ),
    );
    register_taxonomy( 
        \'tag-video\', array( \'video\' ), array(
            \'hierarchical\'          => false,
            \'labels\'                => $labels,
            \'show_ui\'               => true,
            \'show_admin_column\'     => true,
            \'query_var\'             => true,
        )
    );
}

This is the code that I put in the single-video.php

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>
            <article>
                <h1><?php the_title(); ?></h1>
                <?php the_content(); ?>
                <div class="show_video">
                    <iframe src="https://www.youtube.com/embed/<?php echo get_post_meta(get_the_ID(),\'datos_del_video_identificador\',true); ?>" frameborder="0" scrolling="no" allowfullscreen></iframe>
                </div>
                <div class="info_video">
                    <div class="date_post">
                        <p><?php echo get_the_date(); ?></p>
                    </div>
                    <div class="category_post">
                        <p>Categoría: <?php get_the_category(); ?></p>

                    </div>
                </div>
                <div class="tag_list_post">
                    <?php get_the_tag_list(); ?>
                </div>
            </article>
            <?php endwhile; endif; ?>
1 个回复
SO网友:swissspidy

get_the_category() 用于获取默认的帖子类别和get_the_tag_list() 对于默认的post标记。

对于自定义分类,必须使用get_the_terms(), i、 e。get_the_terms( \'categoria-video\' )get_the_terms( \'tag-video\' ) 在你的情况下。

请注意,这些函数不打印任何内容,它们只是返回一个数组。如果您查看文档get_the_terms() 不过,您会找到一个显示术语的示例。最简单的形式如下:

$terms = get_the_terms( get_the_ID(), \'tag-video\' );

if ( $terms && ! is_wp_error( $terms ) ) : 

foreach ( $terms as $term ) {
    echo $term->name;
}

结束

相关推荐

Custom TaxonomyTemplate

我创建了一个自定义分类品牌,并在各种帖子中添加了一些品牌。我还创建了一个名为taxonomy brands的文件。php,它似乎工作得很好。如果我访问www.domain。com/brands/adidas然后我可以看到所有阿迪达斯品牌的帖子。然而,当我访问www.domain时。com/brands/I收到404错误。我希望此页面显示所有可用品牌。(阿迪达斯、耐克、asics等)请帮助Richard