如何为Wordpress类别页面显示不错的URL?

时间:2010-08-10 15:37:46

标签: wordpress .htaccess url-rewriting

我有一个网站,其主页显示一个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中的其他参数。 (我确定在上个月/下个月向我的访问者显示更复杂的网址;这只是我希望更好的初始网页网址。)

我已经搞乱了固定链接,但无法通过这种方式获得正常工作的好网址。是否有.htaccess方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

在“设置”标签下的“永久链接”部分,您可以为类别添加类别基础。

因此,如果你有一个类别基础的“类别”和一个类别名称“酷东西”,其中有一个“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; }?>

答案 1 :(得分:0)

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

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