【问题标题】:How to Display Nice URL for Wordpress Category Page?如何为 Wordpress 类别页面显示漂亮的 URL?
【发布时间】:2011-03-27 21:57:29
【问题描述】:

我有一个网站,其主页显示单个 Wordpress 类别页面。我正在使用自定义主题,并且 index.php 文件执行 301 重定向到“mysitename.com/?cat=3”。此页面是使用事件日历插件和大量自定义代码生成的。它可以工作,但显示的 URL 是“mysitename.com/?cat=3”,我不希望我的访问者看到它;我宁愿 URL 只是“mysitename.com”、“mysitename.com/index.php”,甚至是“mysitename.com/calendar”。

访问者可以查看“上个月”和“下个月”,这会导致类似“mysitename.com?cat=3&eventDate=2010-07&bt=a”之类的网址 - 仍然属于同一类别,但在网址。 (我可以在上个月/下个月向我的访问者显示这样一个更复杂的 URL;这只是我想要更好的初始页面 URL。)

我弄乱了永久链接,但无法获得好的 URL 以这种方式正常工作。有没有 .htaccess 方法可以做到这一点?

【问题讨论】:

    标签: wordpress .htaccess url-rewriting


    【解决方案1】:

    在“设置”选项卡下的“永久链接”部分,您可以为类别添加类别库。

    因此,如果您有一个“category”类别基础和一个“Cool Stuff”类别名称,其中包含“cool_stuff”

    根据您的永久链接设置,您的类别链接会像这样链接。

    http://yoursite.com/category/cool_stuff/


    好的。我的最后一个答案不是基于您的“已编辑问题”。

    如果您删除 301 重定向到“mysitename.com/?cat=3” 您可以编辑 index.php 文件。

    这很可能会解决您的网址问题。

    您可以编辑循环以仅显示来自 id: 3 的类别

    因此,您将为类别 3 创建一个查询帖子,如下所示:

    <?php query_posts('showposts=9'); ?>
    

    请参阅Query Post @ Wordpress 了解更多信息。

    把这个放在循环之前。

    编码可能如下所示:

    <?php query_posts('cat=3'); ?>
    <?php if (have_posts()) {?>
        <?php while (have_posts()) : the_post(); ?>
            <li>
                <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
                <span style="float: right;"><?php the_time('m/d/y'); ?></span>
            </li>
    <?php endwhile; }?>
    

    【讨论】:

    • (我是 OP)关闭,但仍无法按我需要的方式工作。删除 301 redir 并添加 query_posts() 代码 does 仅在“mywebsite.com”上显示该类别。但它显示的是该类别中的帖子,而不是日历。我没有编写插件或进行自定义,但我认为它“骑在”一个类别帖子上进行渲染,但表现得不像普通的 WP 帖子。我看到插件调用了一个 PHP 类,该类又引用了一个 PHP 文件,该文件具有要呈现的实际 xHTML 代码。所以我又想知道 .htaccess 解决方案是否更好?
    【解决方案2】:

    您可以使用 .htaccessmywebsite.com/calendar 映射到 mywebsite/?cat=3,但 WordPress 仍会查看原始 url 以找出要使用的类别,因此这不起作用。

    我建议您查看插件的代码以了解它是如何获取当前类别的,并且可能会欺骗它(通过额外调用query_posts('cat=3'))认为我们正在查看类别 3 的 url(您不需要显示帖子,只需进行查询)。您甚至可以在您的主页上执行此操作(但可能使用home.php,而不是index.php,因为后者是其他模板页面的后备),因此您不需要重定向。但关键是你需要查看你的插件的代码(你能告诉我们名字吗?)以了解它是如何工作的。

    【讨论】:

    • 对不起,我误解了 OP。只是重读并删除了我原来的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多