2010-08-10 60 views
1

我有一个网站,其主页显示一个WordPress的类别页面。我正在使用自定义主题,并在那里做了一个301重定向到“mysitename.com/?cat=3”的index.php文件。该页面由事件日历插件和大量自定义代码生成。它可以工作,但显示的URL是“mysitename.com/?cat=3”,我更喜欢我的访问者看不到;我宁愿让网址只是“mysitename.com”,“mysitename.com/index.php”,甚至是“mysitename.com/calendar”。如何显示Wordpress类别页面的好网址?

访问者可以查看“PREV月”和“下月”,这导致像“mysitename.com?cat=3 & EVENTDATE = 2010-07 & BT =一个”网址 - 仍然内的相同类别,但在URL中还有其他参数。 (我am确定有一个更复杂的URL像这样向我的访问者显示在前一个/下一个月;这只是我想要更好的初始页面URL)

我弄乱了固定链接但无法获得漂亮的URL以正确的方式工作。有没有.htaccess的方法来做到这一点?

+0

看到我编辑的答案:] – Anraiki 2010-08-10 16:42:02

回答

1

在“设置”选项卡下的“固定链接”部分,您可以将类别库添加到类别中。

因此,如果你有“类”和类别名称“酷玩意儿”的范畴基地“cool_stuff”的蛞蝓

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

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


好。我最后的回答不是基于你的“编辑问题”。

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

这很可能会照顾到您的网址问题。

您可以编辑循环从ID只显示类:3

因此,你会做出querypost 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; }?> 
+0

(我是OP)关闭,但仍然没有按照我需要的方式工作。删除301 redir并添加query_posts()代码* *在“mywebsite.com”中显示我只是该类别。但它显示的是该类别中的帖子,而不是日历。我没有写插件或做定制,但我认为*它是“骑在”一个类别帖子得到渲染,但不像一个正常的WP职位。我看到插件调用一个PHP类,而这个类又引用了一个PHP文件,该文件得到了实际的xHTML代码来呈现。所以我想知道如果.htaccess解决方案可能更好? – user249493 2010-08-10 20:07:59

0

你可以使用.htaccess映射mywebsite.com/calendarmywebsite/?cat=3,但WordPress会看起来仍然在原来的网址,找出使用哪一类,所以这是不行的。

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

+0

对不起,我误解了OP。只是重读并删除了我原来的评论。 – qmega 2010-08-12 07:26:38