如果产品属于某个类别,则将按钮添加到该类别,然后链接到该类别

时间:2014-11-02 作者:Nick

我有一个产品网站。。。其中一些产品属于类别(集合)。对于这些产品,我想显示一个按钮“查看集合”,并提供该类别的链接。

所以,我这样做了:

<?php if(in_category): ?>
<a class="btn-light" href="http://dev.andriannashamarisinc.com/product-category/<?php get_the_category( $id ); ?>">View The Entire Collection</a>
<?php endif; ?>
而且,它肯定会在特定的产品上设置按钮,但是链接并没有指向我想要的特定类别。

正确的代码片段是什么?

2 个回复
SO网友:Pieter Goosen

EDIT

根据您的评论,您正在使用get_cat_ID() 完全错了。您只能向其提供一个类别。请遵循所给的所有链接,并检查抄本中的示例。另外,如前所述,启用调试,因为这是您应该发现的所有问题

其次,您似乎使用的是自定义分类法,而不是内置的类别结构,在这种情况下,我原始答案中的任何建议都不会起作用。请退房this post 我已经讨论了类别和自定义分类法之间的区别

我现在没有时间编写代码(我也不太明白您到底想要什么),但这里有一些链接,您应该从codex中查看,并遵循这些页面上给出的示例。

ORIGINAL ANSWER

我认为你的代码根本不起作用。这里有几个错误

在我直接进入错误之前,请参见Debugging_in_WordPress 因为大多数问题都应该在启用调试的情况下解决

现在,对于错误

使用时需要指定类别in_category()

$category

(混合)(必需)由ID(整数)、名称或slug(字符串)或其数组指定的一个或多个类别

默认值:无

决不要将任何URL硬编码到主题或插件中。适当时使用相对或绝对路径。硬编码的问题是,默认情况下,主题或插件不能在其他域上使用

使用时get_the_category(), 实际上,您必须为$id. 只是简单地添加$id 将导致未定义的变量通知。您可以将其留空、提供实际的帖子ID或使用$post->ID 要使用当前的帖子ID(顺便说一句,这是默认的,因此无需这样做,只需将其保留为空)

要获取类别页面的URL(链接),请使用get_category_link()

您可能可以尝试以下内容:(抄本样本)

if( in_category( \'ID, name or slug of the category\' ) && in_the_loop() ) {
   // Get the ID of a given category
   $category_id = get_cat_ID( \'Category Name\' );

   // Get the URL of this category
   $category_link = get_category_link( $category_id );
?>

<!-- Print a link to this category -->
<a href="<?php echo esc_url( $category_link ); ?>" title="Category Name">Category Name</a>

<?php
}else{
    //displays nothing
}

SO网友:Yatix

检查产品是否与任何集合关联。

$term_list = wp_get_post_terms($post->ID, \'collections\', array("fields" => "all")); 
返回分类法“集合”的所有术语项的数组。

如果$term\\u list具有值,则可以使用循环显示集合

$name =  $term_list->name;
$link =  $term_list->link;

结束

相关推荐

Show Pages in Categories

通过将此代码添加到函数中,我创建了category函数。php:function page_category() { register_taxonomy_for_object_type(\'category\', \'page\'); } // Add to the admin_init hook of your theme functions.php file add_action( \'init\', \'page_category\' ); 但问