wordpress文章的链接形式默认是http://localhost/xuanfeng/?p=123形式的,但这不利于SEO,所以推荐用自定义结构,以文章标题做连接,格式为加上/%postname%.html
。
当然,如果你的wordpress本来就存在文章,突然换了固定连接格式,如果是中文标题的文章会发现文章打不开了,而是出现乱码。但是非中文标题的文章能打得开,如何解决呢?
通过修改服务器的设置来解决,具体如下:
1、.htaccess要开放写权限,这样在自定义wp的永久链接时,wp会自动重写.htaccess。所谓删除或手动重写.htaccess就是因为没有开放它的写权限。(如果没有.htaccess的同学可以略过这步)
2、找到APACHE文件中的httpd.conf文件, 把#LoadModule rewrite_module modules/mod_rewrite.so
前的#去掉,加载rewrite模块。
3、查看APACHE文件中的httpd.conf文件是否默认设置了AllowOverRide
为None,如果是,要改成All。或者修改 wordpress所在的vhost段添加 < Directory /wp所在路径/> AllowOverride All < /Directory> 重启apache。记住要重启才有效哦
然后你可以发现,能打开这中文标题这类型链接了。然后浏览器地址栏也显示的中文标题,然而这种形式显然不好看。虽然是方便了我们,但还不是很好。我们复制链接的时候,发现中文会转换成一堆乱码。这时候可以借助插件WP Slug Translate来帮我们把中文标题转换为英文标题。
插件功能简介:WP-slug是用来自动为中文标题生成英文缩略名或拼音缩略名的插件。翻译源自Google的翻译功能,如果你手动添加SLUG,那就按添加的SLUG为准。如果未添加,刚自动生成英文缩略名,在不能翻译的情况下,就生成拼音缩略名。转换成拼音的不仅仅是标题, 有可能是已经设置的slug, 如果已经设置的slug中含有中文字符也会翻译成拼音。
安装并启用插件之后,可以去编写新文章试下效果了。不过此时却发现仍然存在错误,提示
1 |
Fatal error: Call to undefined function curl_init() in G:\PHP\wamp\www\xuanfeng\wp-content\plugins\wp-slug-translate\wp-slug-translate.php on line 30 |
这个错误是 告诉你 curl_multi_init()
不能使用
1. PHP 5 版本才可以使用这个 函数
2 . 必须开启 curl 扩展
打开php.ini把;extension=php_curl.dll
前面的分号去掉 , 重启apache 就可以使用了
嗯,到这里差不多把问题都解决了。但是,文章标题英文化仅限于启用插件之后新发表的文章,而对于旧文章是无效的。但是之前我已经发布了一些文章,这可怎么办呢?难道得重新发布?
呵呵,其实这个问题很简单。先打开所有文章,然后接下来就要发挥我们的作用了,点击旧文章的“快速编辑”,然后发现每篇文章都有个标题和别名,现在发现者两个是一样的,而别名是用来显示在地址栏的,所以我们可以通过把别名英文化来实现。虽然这也要花点时间,但是总比重新发表好吧,同时这也有利于SEO。在这里,我们其实可以不用自己起别名,而是到文章中点击更新就好了,插件会把链接自动更新。
最后,还发现伪静态带来的分页问题,如果你使用的是无插件的文章分页代码的话,当你改变固定链接形势之后,你会发现,文章不能正常分页了。分页的链接形式变成了类似/page/2。如果你的php很好,你可以通过改进原先的代码。否则你又得使用文章分页插件了,这个插件是WP-PageNavi分页导航。
你这个是用的什么主题??? 导航是怎么弄的,这么有动感音效???
我自己写的主题 哈哈
自己写哒