从多类别页面获取当前活动类别

时间:2016-07-19 12:27:51

标签: wordpress categories posts

我在这里面临一点挑战。

上下文:

我正在为一家公司工作,我正在为他们建立一个新网站。 它是用Wordpress构建的,顺便说一下就好了。

该网站有一个新闻和博客页面,上面有帖子。 但在某些特殊情况下,新闻帖也可以成为博客页面的一部分。

所以当发生这种情况时,我们会设置2个类别,并将主要内容放在类别上。

挑战:

当我访问包含多个类别的帖子时,我可以访问:

http://example.com/blog/news_post

http://example.com/news/news_post

但是页面上有一些值依赖于类别的名称。 (我知道这通常不是一个好主意,但在这件事上我别无选择。)

当我访问某个页面时,我想获取用于获取所需字段值的类别。

所以,当我去新闻页面时,我想得到"新闻"当使用函数获取名称时作为类别名称。

我已经尝试了互联网所说的可以解决这个问题的多种方法,但是他们要么不工作,要么(大多数事情发生的事情)对于多类别的帖子都没有意义,而是为了获取页面的所有内容。

如果您需要更多信息,请告诉我。

PS。我宁愿不是我们的网址,但如果这是最好的选择,我会接受它。 希望你们能帮忙

修改

我设法做到了。 虽然最后我还是使用了url,但是它通过大量编码打败了其他选项。

我在René Schubert

的帖子之后找到了这个解决方案

当我看到有人在那里找到了我尝试过的答案并且经过一些调整后,我只是选择了。

这是我现在的代码。

$url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );
$category = substr($url, strpos($url, "category_name=") + 14);

如果你有更好的方式请告诉我:) 我只是为了更好的方式。

1 个答案:

答案 0 :(得分:1)

您想显示特定类别的帖子并获取其类别名称吗?

我不知道你是如何得到的,但为了避免混淆,你可以通过创建category-news.php文件来创建一个单独的类别模板。请参阅this。它将仅显示来自新闻类别的帖子。在这里,您将获得显示帖子的类别名称。

<?php
            $cat_name=get_category($cat);
            echo $cat_name;// diplay cat name
            $cat_id=$cat_name->cat_ID;
            ?>
            <div>
                <?php query_posts("cat=$cat_id&order=ASC&orderby=date"); ?>
                <h4><?php single_cat_title(); ?></h4><hr>
                <ul>
                    <?php while (have_posts()) : the_post();
                       ?>
                        <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
                        </li>
                    <?php endwhile; ?>
                </ul>
            </div>
相关问题