Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 显示标记类别_Wordpress - Fatal编程技术网

Wordpress 显示标记类别

Wordpress 显示标记类别,wordpress,Wordpress,当查看标签页时,是否可以在循环中输出标签所属的类别,而不是列出其帖子 我的主页循环的外观如下,我在标签页上寻找同样的东西 <ul class="thumb-grid"> <?php query_posts('meta_key=is_front_page&posts_per_page=5&paged=$paged'); ?> <?php if (have_posts()) : wh

当查看标签页时,是否可以在循环中输出标签所属的类别,而不是列出其帖子

我的主页循环的外观如下,我在标签页上寻找同样的东西

            <ul class="thumb-grid">
            <?php query_posts('meta_key=is_front_page&posts_per_page=5&paged=$paged'); ?>
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                    <a href="<?php bloginfo('url'); ?>/movies/<?php $category = get_the_category(); echo $category[0]->category_nicename; ?>">
                        <img src="<?php echo $my_image_url = get('movie_thumbnail'); ?>" alt="" />
                        <span class="title"><?php $category = get_the_category(); echo $category[0]->cat_name; ?></span>
                        <span class="feat"><?php $articletags = strip_tags(get_the_tag_list('',', ',''));echo $articletags;?></span>
                    </a>
                </li>
            <?php endwhile; endif; ?>
            <?php wp_reset_query(); ?>
            </ul>

这是一个输出类别列表的解决方案,其中包含一次在页面上而不是在循环中共享当前标记的帖子。我只在标记页面上测试了它,其中“标记”查询变量可用。它使用自定义查询。这对学习非常有用

您需要在开始时定义自己的表前缀,或将其设置为

测试 我通过将代码直接放在tag.php中来测试它。将其放在您自己的插件或主题的functions.php中会更明智。可能需要进行一些调整,以确保$wp_查询对象在该函数中可用

术语和分类 记住,标签和类别在wordpress数据库中被认为是相等的。同样,帖子、页面、修订和草稿都是“帖子”,类别和标签都是“术语”。它们之间的区别在于它们的“分类法”,即术语是“类别”还是“标记”

“术语”表包含所有标记和类别。“term_taxonomy”存储术语是标记、类别还是帖子链接。“term_relationships”表将POST和分类法配对。“object_id”列可以保存此表中的post id或term id

代码大纲

设置表格前缀 从查询变量获取标记名 从terms表中获取标记的term_id 从term_relationships表中获取帖子id的命名为“object_id”的数字索引数组 将该数值数组转换为逗号分隔的字符串 修剪尾随的逗号 从term_关系中选择所有term_taxonomy_id的类别和标记,这些类别和标记具有来自4的post id作为多维关联数组 在具有此标记的所有帖子中创建一个术语数组。 对于此数组中的每个元素,选择分类法是“category”还是“tag”,如果是类别,则将术语\u id放入数组中。 将该数组设置为字符串,以便在下一步中使用。 使用category_id字符串调用wp_list_categories作为要包含的类别。 代码示例

我希望这对你有用

更新 作为对您的评论、to和description以及其他cat元数据的响应,您可以使用get_categories替换wp_list_categories,同时仍然传递include='.$category_id。这将返回一个类别对象数组,您可以根据需要循环使用该数组,并显示类别、描述、帖子数量等

来自codex页面的新代码示例

$args=array(
  'orderby' => 'name',
  'order' => 'ASC'
  );

$categories=get_categories($args);
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
 } 

这将是一个自定义查询。由于标记和类别仅通过它们共享的帖子间接相关,因此必须循环所有帖子或创建适当的SQL连接来查找所有组合。你想要什么样的用户界面?嗨,我添加了我的HP循环的外观,我试图得到的标签页循环也应该类似,显然只输出标签所在的类别。只是想,如果有更简单的方法查询meta键,那就是“首页”&检查标签是否存在于这些帖子中?我不知道这一切是否可能。我更新了我的答案,以回应你的评论。我很感激他们的伴侣所做的努力,看起来确实有效,但不完全是我想要的。我希望能够通过循环输出猫的标签特性,这样我就可以用猫的描述和元数据来设计每个猫的样式。这个问题可能比我想象的更复杂,我可能会寻求一个更简化的布局。谢谢,是的,这似乎解决了bar 1的问题-我只是注意到了这一点,但它似乎输出了所有类别,而不仅仅是标签所在的类别。我找到了这个插件:它完全符合我的要求,但它只输出标签的名称。。。。
$args=array(
  'orderby' => 'name',
  'order' => 'ASC'
  );

$categories=get_categories($args);
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
 }