问个问题,wp里面如果一个category里面没有post...高手帮忙。
本帖最后由 非常小黑 于 2013-11-2 14:19 编辑如果一个目录对应的没有post,那么就变成404页面,代码如下:<?php if ( have_posts() ) : ?>
......
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
但是我不想变成404页面,我想变成一个自定义的页面
我把<?php get_template_part('content','none');?>部分,无论改成什么,都没用,他依然还是显示404页面。
谁能告诉我怎么做?
我好像记得某些模板有自定义404页面的功能,但实在是记不清了。
这个就奇怪了, 我用的是默认主题,
修改category.php的
将<?php get_template_part( 'content', 'none' ); ?>的none改成empty-category
content-empty-category.php正常加载了...
没法reproduce你的问题, 爱莫能助
luguokankan 发表于 2013-11-2 19:28 static/image/common/back.gif
这个就奇怪了, 我用的是默认主题,
修改category.php的
将的none改成empty-category
版主大人,你是wordpress 几?
是2012主题吗?
luguokankan 发表于 2013-11-2 19:28 static/image/common/back.gif
这个就奇怪了, 我用的是默认主题,
修改category.php的
将的none改成empty-category
对了。我是做了no-category处理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
这种情况下,我无论怎么修改,他都是404页面。
非常小黑 发表于 2013-11-3 03:10 static/image/common/back.gif
对了。我是做了no-category处理,也就是把www.xxx.com/category/xxx.php改成www.xxx.com/xxx.php了
这种 ...
你说的404应该不是content-none.php?
而是404.php吧?
再加上no-category, 我觉得应该是wp把www.xxx.com/xxx.php当成文章处理了.
用的是http://wordpress.org/plugins/wp-no-category-base/ 这个插件吗?
你给我说下插件,我才好帮你
本帖最后由 非常小黑 于 2013-11-3 11:31 编辑
luguokankan 发表于 2013-11-3 07:45 static/image/common/back.gif
你说的404应该不是content-none.php?
而是404.php吧?
用的seo-ultimate这个插件
他里面有去除category这个功能。
是的,我无论如何修改elseif后面这段,他都显示404
然后我去class-wp.php里面修改function handle_404()
去除is_category()部分,也没用。
我怀疑,是不是wp把重写了category目录以后,就认为不是is_category了?
本帖最后由 luguokankan 于 2013-11-3 12:36 编辑
非常小黑 发表于 2013-11-3 11:29 static/image/common/back.gif
用的seo-ultimate这个插件
他里面有去除category这个功能。
/seo-ultimate/modules/permalinks/permalinks.php
$terms = get_terms($tax_name);
改成
$terms = get_terms($tax_name,'hide_empty=0');
要是再出现404, 请到Permalink Settings那里按几下"Save Changes".
然后,你就可以修改主题的elseif了.
---
原因,我稍微解释下.
wp会将居于permalink setting而生成的rewrite rules保存在数据库.
当你访问一个链接的时候, wp会跟这些rewrite rules对比,找出匹配的页面返回给你.
你这个插件的问题是,他只生成post不为空的category的rewrite rules.
所以你访问没文章的category就404了......... 找不到匹配的页面.
---
由于这些rewrite rules是存在数据库里的, 你要是修改插件的话, 这些rewrite rules不会立即生效.
Permalink Settings的"Save Changes"按钮能刷新这些rewrite rules
luguokankan 发表于 2013-11-3 12:33 static/image/common/back.gif
/seo-ultimate/modules/permalinks/permalinks.php
$terms = get_terms($tax_name);
果然如此啊。。。哥你太棒了。。。
佩服佩服。
页:
[1]