分类目录归档:PHP学习

WordPress升级为3.5.1,并发布模版twenty twelve

今天登陆博客后台,才看到WordPress又升级了,为什么是又呢?

于是果断升级到WordPress 3.5.1,并且WordPress 3.5.1自带了新的主题模版Twenty Twelve,也就是2012版主题。

看官方介绍新版WordPress有以下改进:

  • 编辑器:解决 HTML 元素可能意外消失的问题。
  • 多媒体:修正若干小工作流程问题和兼容性问题。
  • 多站点:在创建新网络的时候提示使用正确的重写规则。
  • 避免定时发布的一些 HTML 标签在发布时消失的问题。
  • 临时解决了错误配置可能造成的仪表盘 JavaScript 异常的问题。
  • 隐藏了插件错误使用数据库或用户 API 时的警告。

不过最好的,我觉得新版主题模版(Twenty Twelve)真的很赞,是我梦寐以求的主题样式,非常之简洁。于是果断更换了新模版,并添加了翻页导航和修改了下底部,加上备案号。

新更换主题之后,WP-PageNavi文章列表分页导航插件依然可以使用,不过需要在模版中修改一下代码。编辑模版下面的function.php(模版函数),找到下面代码:

1
2
<div class="nav-previous alignleft"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentytwelve' ) ); ?></div>
<div class="nav-next alignright"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?></div>

替换为:

1
<?php wp_pagenavi(); ?>

保存即可。

No Category Base 插件失效的解决办法?

查百度收录,突然发现多了很多/category之类的分类,明明WordPress安装着No Category Base插件的啊。后台查看了下,No Category Base插件处于启用状态,并没有被关闭。也就是说虽然运行着但是已经失效了。

百度了一下,找到了LMT博客的一篇文章,修改之后解决了,内容转载如下:

No category Base失效的解决办法

经查,是Wordpress升级之后的Rewrite规则变了,而no category base还没有升级,导致功能失效的。

解决办法:
只需要在后台找到WP No Category Base,然后点击编辑进入插件编辑页面,在 wp-no-category-base/no-category-base.php文件中找到下面代码:
$wp_rewrite->extra_permastructs[‘category’][0] = ‘%category%’;
修改成:
$wp_rewrite->extra_permastructs[‘category’][‘struct’] = ‘%category%’;

保存之后,刷新看一下目录链接里的category是不是消失了。

Discuz X2面包屑导航去掉分区链接

Discuz X2论坛的面包屑导航是类似:首页>论坛>分区>版块>帖子这种形式,而分区链接对于我们来说用处不大,所以可以想去掉,这样权重集中到版块和首页上。

需要修改的地方有三个:主题列表页、帖子页面和发帖页面。

1.主题列表页:默认的主题列表页是 首页>论坛>分区>版块,我们要修改为 首页>论坛>版块,并且将论坛的链接中的forum.php去掉。

将面包屑导航修改为 首页>论坛>版块:找到source\module\forum目录下forum_forumdisplay.php文件。
删除以下代码:

1
<em>&rsaquo;</em> <a href="forum.php?gid='.$forum_up['fid'].'">'.$forum_up['name'].'</a>

继续阅读

Discuz X2论坛修改默认首页并去掉链接中的forum.php

Discuz X2搭建论坛非常方便,但是由于Discuz X2程序有两个模块:门户和论坛。如果设置论坛为默认首页的话,那么输入网址不是直接显示论坛内容,而是会自动跳转到/forum.php。

大家知道这样做非常不友好,而且默认首页做跳转,也不利于权重的积累。

所以我将Discuz X2的论坛做了两个修改:
第一,将forum.php设为网站的默认首页,并设为第一顺序。
第二,将网站导航、面包屑导航等里面的forum.php的链接直接去掉,修改成论坛的默认网址。比如我将指向 http://liboseo.com/bbs/forum.php 的链接直接修改成 http://liboseo.com/bbs/ 。 继续阅读

禁止WordPress上传图片自动生成缩略图小技巧

WordPress上传图片和管理图片非常方便,但是有一个问题非常麻烦,那就是每次WordPress上传图片之后会自动生成三个尺寸的缩略图,虽然WordPress这个功能非常方便,可以自动将图片修改成为我们需要的尺寸,但是大多数大家上传图片之前已经将图片尺寸修改好了,不需要再修改尺寸。而且WordPress每个图片都自动生成三个尺寸的缩略图,会造成网站空间的浪费。

其实有个好办法可以去掉,那就是用管理账号登陆WordPress博客的后台,找到设置→媒体,将媒体选项里面的图片大小下面的三个尺寸选项全部修改为0,然后保存就可以了。

php出现Cannot modify header information解决实例

以前做了个PHP读取文本文档的小程序,然后改造了一下加了个登录功能,让它可以凭密码登陆修改文本文档,可以用在php在线修改robots文件等等。但是更换了主机之后,原来的代码不能用了,出现了Cannot modify header information的错误提示。

PHP Warning:  Cannot modify header information – headers already sent by (output started at /demo/robots.php:3) in /demo/robots.php on line 7
PHP Warning:  session_start() [<a href=’function.session-start’>function.session-start</a>]: Cannot send session cache limiter – headers already sent (output started at /demo/robots.php:3) in /demo/robots.php on line 4

而在其他主机和本地测试一切正常,最后网上找到一段话:

cookie本身在使用上有一些限制,例如:
1.呼叫setcookie的代码必须放在<html>标签之前
2.呼叫setcookie之前,不可使用echo
3.直到网页被重新载入后,cookie才会在程序中出現
4.setcookie函数必須在任何资料输出至浏览器前,就先送出……

那么会不会是Session也需要在<html>标签之前出现呢?而我为了省事,在代码中没有加入<html>标签,看了有些是不能省略的。

于是增加了标准html代码,并在将$_SESSION的判断放在了整个文档的前面。然后测试了下,成功了。有时候一个小的地方不注意,就会造成一些大的问题。以后要注意了。

登陆一下试试看吧:http://liboseo.com/demo/robots.php

给WordPress博客图片加水印的插件

Watermark RELOADED

简单介绍:

刚才从老李的博客看到这个给WordPress博客图片加水印的插件,感觉不错,收藏一下。

插件的名称:Watermark RELOADED

Watermark RELOADED 插件允许给上传的图片添加水印。您可以创建具有不同字体的水印,并将其应用到不同的图像大小(缩略图,中型,大型,全尺寸),定位在图像上的任何地方。 继续阅读