创建多个 Wordpress 类别 div
Posted
技术标签:
【中文标题】创建多个 Wordpress 类别 div【英文标题】:Creating multiple Wordpress category divs 【发布时间】:2015-08-11 16:37:02 【问题描述】:我有一个使用图像替换类别文本的 Wordpress 网站。它被设置为有一个后 div(填充:20% 0;为了一致的响应高度)然后有一个绝对定位的 div,垂直/水平居中在这个 div 上方。
<div class="indx-img" style="background-image:url('...');">
<?php
$testStyle = "";
if(has_category( 'update' ) || has_category( 'uncategorized' ))
$testStyle = "style=\"background-image:url('".get_bloginfo('template_directory')."/img/logo.png')\"";
elseif(has_category( 'event' ))
$testStyle = "style=\"background-image:url('".get_bloginfo('template_directory')."/img/logo.png')\"";
?>
<div class="test" <?php echo $testStyle; ?>></div>
</div>
CSS
.indx-img
position: relative;
padding: 20% 0;
.test
position: absolute;
left: 50%;
margin-left: -5em;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
height: 10em;
width: 10em;
这是一张用于测试的背景图片。这样做的问题是,如果帖子上有多个类别,则只会显示一个。
理想情况下,我希望在“测试”中为每个应用到帖子的类别创建一个 div,类别图像彼此相邻对齐。
【问题讨论】:
一个问题:为什么if
和elseif
中的陈述相同?如果这就是他们应该的样子,那么我认为使用if-elseif
毫无意义。一个if
就足够了。
他们会改变,现在他们是这样的,只是为了确保它有效,最后会有超过2个语句,每个会有不同的图片
【参考方案1】:
根据您的代码,我猜您的 HTML div 代码正在为单个帖子运行。当您使用 has_category 检查单个类别时,它只会为您提供类别。
要获取任何帖子的所有类别,您需要wp_get_post_categories
函数。
$post_categories = wp_get_post_categories( $post_id );
$cats = array();
foreach($post_categories as $c)
$cat = get_category( $c );
$cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
通过这种方式,您可以获得类别列表并可以相应地放置应用样式代码。有关wp_get_post_categories
用法的更多详细信息,请参阅https://codex.wordpress.org/Function_Reference/wp_get_post_categories。
【讨论】:
甜蜜,这似乎是正确的轨道,是否有任何其他来源提供您遇到的示例来进一步解释它? codex.wordpress.org 这本身就是 wordpress 社区,您可以通过参数和用法获取所有函数的详细信息,而不是每个函数的原始定义,您可以随时根据您的要求将其与代码一起使用,并且由于都有不同的要求,因此您很难获得所需的确切代码以上是关于创建多个 Wordpress 类别 div的主要内容,如果未能解决你的问题,请参考以下文章