分类
电脑技巧

wordpress彻底清除pingbacks

当其他博客在文章中有提到你的博客或者某一篇文章的链接时,这是你的博客就会收到一个Pingbacks,主要是提到相互通知的作用,但是这个功能越来越鸡肋了,越来越多的广告通过这种形式进行传播,今天就来一个彻底关闭这个功能的方法。
需要用到数据库,直接在数据库中修改,但在修改之前,还是先把数据库给备份一下。
1,通过phpMyAdmin登陆数据库。
2,点击 Sql按钮:
 
3,在新弹出的窗口中输入下面这条命令:
UPDATE `wp_posts` SET ping_status=”closed”;
4,完毕,从此之后再也不会看到pingbacks的任何信息了。

分类
电脑技巧

阻止WordPress对站内文章的pingback

Pingback 是网志中常用的用来通知网志系统文章被引用情况的一种手段。3G 博客网将其翻译为“广播”,是指计算机系统向外部发出引用信息,但也有人认为会与日常生活中的广播混淆。当其他人连结至 Web 作者的网页时,Web 作者获取通知的方法。这个方法使得 Web 作者可以追踪什么人连结至他的文章。有一些网志软件,如 WordPress,具有当一篇文章出版的时候,自动 pingback 这篇文章中所有的连结的功能。

以上对 Pingback 的解释来自于维基百科。对于 WordPress 而言,简单来说,pingback 就是当别人转载/引用你的文章链接时,会自动在你的文章底部加一条来源的链接(当然,前提是你的 WordPress 主题支持这一功能)。这个功能相当实用,因为大多数情况下,这些引用的链接都是和原文相关,或者有扩展的内容,读者可以寻着链接阅读到更多感兴趣的信息。

同样的道理是,如果在一篇文章中引用了自己站内之前写过的另一篇文章的链接,那么,这个之前的这篇文章就会收到自己站内发给自己一个 pingback。但是我认为一般说来,站内链接用相关日志功能就可以做到内链建设,pingback 对于站内文章是多余的,可以关闭这个功能。

方法如下,在 WordPress 主题的 functions.php 中添加如下代码:

function no_self_ping( &$links ) {

$home = get_option( ‘home’ );

foreach ( $links as $l => $link )

if  ( 0 === strpos(  $link,  $home ) )

unset ( $links[$l]);

}

add_action ( ‘pre_ping’, ‘no_self_ping’ );
 

如果我没记错的话,这段代码的前身是一个插件,但是仅仅为这几行代码动用一个插件是不是太奢侈了?能省则省吧,还是把它提取到了非插件集成在主题里,多省心呀

分类
电脑技巧

WordPress主题在线生成器

不懂HTML,也不懂JS、PHP和CSS,可是又想制作一个属于自己的WordPress主题?试试WordPress主题在线生成器吧。

今天要介绍的就是已有若干年历史的主题生成器WordPress Theme Generator。它使用起来非常方便,你需要做的就是选择颜色、选项、样式,然后在线预览,预览完成后点击最下方的“save”保存你制作出来的主题,然后系统会提供相应的zip文件供你下载。

当文件下载完毕,按照常规主题安装步骤完毕后,激活主题,你就可以用上自己制作出的主题了。

WordPress Theme Generator兼容WordPress 2.1到3.1的所有版本,支持widget和标签,给出各种设计要素供用户选择。效果在右侧显示。

WordPress Theme Generator的缺点在于不够灵活,选项只能满足基本需求。如果你对主题的要求比较高,去官方主题库寻找适合的主题更靠谱些。

分类
电脑技巧

wordpress 替代 All in One SEO Pack插件

在寻找All in One SEO Pack插件的替代方案前,首先要弄明白这个问题。下面几个功能是最有价值的,也是wordpress默认无法提供的:

1、博客的标题(title)应当写成内容 | 博客名的形式;

2、head部分添加充足的meta说明;

3、让搜索引擎不要索引存档页面,存档页面都是重复内容,这会降低博客的评分。

4、为每一篇文章以及博客首页,加上独特的关键词(keywords);

下面就会针对这些问题,给出解决方案。如果你不大了解php语言,只需要按照说明复制粘贴到自己的wordpress模板中就可以了。

修正博客的标题

在模板文件夹中找到header.php文件,打开后修改title标签:

<title><?php wp_title(‘ | ‘, true, ‘right’); ?><?php bloginfo(‘name’); ?></title>
/**或者干脆把博客的名字写死,你总不会时常换博客名字吧**/
<title><?php wp_title(‘ | ‘, true, ‘right’); ?>Cogipard Playground</title>
 

添加充足的meta说明

还是修改header.php文件,在head标签中酌情加入如下内容:

/**博客的描述性内容,你可以像我这样写死,也可以采用wordpress的副标题(用bloginfo(“description”)获得)**/
<meta name=”description” content=”A personal online home, portfolio and journal.” />
/**博主的名字**/
<meta name=”author” content=”dotswing” />
/**版权信息**/
<meta name=”copyright” content=”Cogipard Playground” />

 不索引存档页面

修改header.php文件,紧接着上述的meta标签,加入:

<?php if (is_single() || is_page() || is_home() ) : ?>
<meta name=”robots” content=”index,follow” />
<?php else : ?>
<meta name=”robots” content=”noindex,follow” />
<?php endif; ?>

 这样对于存档页面,搜索引擎就不会去索引这些重复的内容了。

个性化输出页面文章的关键词

在模板文件夹下的functions.php文件中,加入如下的函数:

function keywords() {
$keywords = ”;
if( is_single() || is_page() ){
$terms = get_the_terms( get_the_ID(), ‘post_tag’ );
if ( is_wp_error( $terms ) )
return $terms;
if ( empty( $terms ) )
return false;
foreach ( $terms as $term ) {
$keywords .= $term->name;
$keywords .= ‘, ‘;
}
}
else {
$tags = get_tags(‘orderby=count&order=DESC’);
foreach ($tags as $tag){
$keywords .= $tag->name;
$keywords .= ‘, ‘;
}
}
$keywords = substr($keywords, 0, strlen($keywords)-2);
echo $keywords;
}

这个函数的作用是,如果访客浏览的是单独的某文章页面,就会把该文章对应的tag提取出来,作为关键词;如果是其它页面,则把博客所有的tag一起输出成关键词。关键词用逗号隔开。

在header.php中调用这个函数:

<meta name=”keywords” content=”<?php keywords();?>” />
functions.php中的代码,可以在模板页中直接使用,wordpress已经为我们做好了include操作,不需要自己来写include_once(‘functions.php’);了。

分类
电脑技巧

WordPress 3.1 禁止自动草稿(auto-draft)的方法

WordPress3.1版本发布有一段时间了。该版本不仅仅有自动保存历史版本的功能(通常都用不着,还会造成一些垃圾数据),还增加了一个自动保存草稿的功能。你每次点击”add new”时都会在post表中保存一条状态为“auto-draft”的后台不可见记录,同样会造成一些垃圾数据以及ID的不连续性。

为保证尽量减少数据库中的垃圾和保持日志ID的连续性,人们想了很多办法,各显神通。但大部分都是采用插件形式。插件形式仅仅能禁止日志的历史版本,却对自动插入的状态为”auto-draft”的记录无能为力。而且这种记录并不能在wordpress的后台看到。对于追求完美和有洁癖的人来说,这些记录实在是很烦人。

禁止自动生成 auto-draft 的不可见草稿:
在wp-admin/includes/post.php中,从第374行开始,有一个if判断,代码如下:
if ( $create_in_db ) {
// Cleanup old auto-drafts more than 7 days old
$old_posts = $wpdb->get_col( “SELECT ID FROM $wpdb->posts WHERE post_status = ‘auto-draft’ AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date” );
foreach ( (array) $old_posts as $delete )
wp_delete_post( $delete, true ); // Force delete
$post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
$post = get_post( $post_id );
} else {
解释一下这段代码的功能,首先,清除七天以前的自动草稿,然后插入一条新草稿,如果你继续写文章并发布,那么这条草稿就被使用了,包括在后台首页有一个快速发布,也用到了这个。但如果你仅仅是点击了new post(添加文章),接下来没有输入任何内容就跳到别的页面去了或关闭了,此时仍然会生成一个自动草稿,而这个草稿,是后台不可见的,是垃圾数据。

所以修改了一下代码,将这个if判断中的内容替换成以下内容,代码如下:
if ( $create_in_db ) {
// modify by akii start
global $current_user;
$post_auto_draft = $wpdb->get_row( “SELECT * FROM $wpdb->posts WHERE post_status = ‘auto-draft’ AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1” );
if ($post_auto_draft){
$post = $post_auto_draft;
} else {
$post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
$post = get_post( $post_id );
}
// modify by akii end
} else {
原理及说明:当数据库中有一条或多条状态为”auto-draft”的自动草稿时,取ID最小的,新文章即使用此条记录。如果没有此种类型的数据,才会新插入一条数据。并且查询数据时是根据当前的用户来判断,不会出现多用户时出错。这样就可以避免了自动草稿(auto-draft)的冗余垃圾数据。保证了日志ID的连续性。但最后我要提醒一句,如果你在日志中添加了附件,如图片,那么该图片也会占用一条数据,即一个连续的ID,所以,如果你以ID形式,发现日志有时候不是连续的ID了,那么,有可能是你日志的附件占用了临近的ID。

分类
电脑技巧

wordpress嵌入视频

中文视频网站视频自动嵌入 – 允许您以在文章添加视频播放页面网址的方式,简单地插入优酷网、56.com 和土豆网视频。默认开启。
当前支持的站点、样例 URL 和参数如下:

•优酷网 – 如 http://v.youku.com/v_show/id_XMjQxMjc1MDIw.html – 宽 480px,高 400px
•56.com – 如 http://www.56.com/u21/v_NTgxMzE4NDI.html – 宽 480px,高 395px
•土豆网 – 如 http://www.tudou.com/programs/view/o9tsm_CL5As/ – 宽 480px,高 400px
您只需在文章另起一段,写入形如上述的播放页面链接。在文章显示时,WordPress 将自动替换这些链接为相应视频播放器。需要您特别注意的是,请不要为 URL 设置超链接,且该 URL 本身必须独立成段。

分类
网络感想

WordPress 3.1版正式发布

WordPress 3.1于昨晚正式发布,该版本比官方原定发布计划晚了2个多月,被命名为Reinhardt,献给爵士音乐家 Django Reinhardt。

目前,官方已经提供中文版本下载,站长也可以在博客后台看到更新提示。

此版本引入了全新设计的链接方式 —— 今后您可以以闪电般的速度将文字链接到站点中的其它文章或页面;添加了“管理工具条”功能,使用常用功能将只需点击一次鼠标;简洁的流程化的写作界面默认隐藏了极少用到的功能(在“页面选项”中可恢复它们),就算您是“新手”,也从此不必害怕了。3.1 版本还提供了新的蓝色后台配色方案。

开发者也有糖吃 —— “文章形式”功能让开发者为主题设计“微博”文章格式更加顺手;新内容管理系统(CMS)功能提供了用来显示自定义文章类型的归档页面支持;此版本还包含了全新的“网络管理员”、导入和导出系统的改造、分类法高级查询等功能。

分类
电脑技巧

wordpress无法上传附件的解决办法

很多朋友,因为对WordPress主机认识有一个不断变化的过程,所以会经常更换主机,几次转换之后,还有可能出现的一个问题是:博客无法上传附件。

出现问题的原因:不管是哪种主机,在帐户创建的时候,那Wopus来说,帐户的绝对路径开始一定是:/home/wopus/xxxx。这里wopus就是登陆主机控制面板的用户名,如果把博客放在public_html根目录,那附件上传的绝对路径是:/home/wopus/public_html/wp-content/uploads/month/xxx。

由于要换空间,新开空间可能会使用不同的用户名,比如新的空间使用qiuzhang这个用户名,那么,在程序上传完毕,数据库也导入完成之后,附件的上传绝对路径还是没有变,还是:/home/wopus/public_html/wp-content/uploads/month/xxx;但正确的上传绝对路径应该是:/home/qiuzhang/public_html/wp-content/uploads/month/xxx。

于是,我们只要在wp_options数据表的第二页找到:upload_path,点击最前面的修改,把地址修改成正确的绝对地址,然后保存,这样,再上传,问题就解决了。

分类
电脑技巧

WordPress编辑器全攻略

为编辑器添加新的HTML标签

默认情况下WordPress编辑器不允许不符合XHTML 1.0标准的HTML标签出现在编辑器里。例如,iframe就会被编辑器过滤掉。如果你需要在文章或者页面里插入iframe,结果会让你很沮丧。

下面的代码强制编辑器接受更多HTML标签。你只需要把它们粘贴到主题的functions.php文件里然后保存就可以了。

function fb_change_mce_options($initArray) {     
$ext = ‘pre[id|name|class|style],iframe[align|longdesc|
name|width|height|frameborder|scrolling|marginheight|
marginwidth|src]’;       
if ( isset( $initArray[‘extended_valid_elements’] ) ) {         
$initArray[‘extended_valid_elements’] .= ‘,’ . $ext;     
} else {         
$initArray[‘extended_valid_elements’] = $ext;     
}       
return $initArray; 

add_filter(‘tiny_mce_before_init’, ‘fb_change_mce_options’);
将HTML编辑器设为默认编辑器

惯于写代码的站长们更习惯编写HTML,所以他们不太喜欢WordPress的可视化编辑器,而且在所见即所得编辑器里更可能生成无效代码或者混乱的代码。

那么要怎样把HTML编辑器设为WordPress的默认编辑器呢?打开主题的functions.php文件,加入以下代码:

add_filter(‘wp_default_editor’, create_function(”, ‘return “html”;’));  
在编辑器里添加默认内容

在functions.php文件里添加以下代码:

function insertFootNote($content) {
        if(!is_feed() && !is_home()) {
                $content.= “<div class=’subscribe’>”;
                $content.= “<h4>标题</h4>”;
                $content.= “<p>显示的正文内容<a href=’http://指向的链接’>链接文字</a></p>”;
                $content.= “</div>”;
        }
        return $content;
}
add_filter (‘the_content’, ‘insertFootNote’);
 
事实上这些内容并不会显示在编辑器里,但你每次发布新文章时,文章结尾会出现你事先设定的内容。

显示Tiny MCE中的隐藏按钮

默认情况下,WordPress的TinyMCE编辑器中只给出了最常用的编辑按钮,比如加粗、斜体、标题等。如果你需要更多文字格式选项,可以在functions.php文件里加上下面的代码,让隐藏的按钮统统显示出来:

function enable_more_buttons($buttons) {   
$buttons[] = ‘hr’;   
$buttons[] = ‘fontselect’;   
$buttons[] = ‘sup’;     

// etc, etc…     

return $buttons; 

add_filter(“mce_buttons”, “enable_more_buttons”);
可用的编辑按钮包括:加粗、斜体、下划线、删除线、左对齐、居中、右对齐、两端对齐、无序列表、编号列表、减少缩进、缩进、剪切、复制、粘贴、撤销、重做、插入超链接、取消超链接、插入图片、清除、帮助、代码、水平线、删除格式、格式选择、字体选择、字号选择、样式选择、上标、下标、前景色、背景色、特殊符号、视觉辅助、锚文本、新建文本与分隔符。

添加本地语言的拼写检查

WordPress默认配置中有一个英文拼写检查工具,那么有没有办法对其它语言进行拼写检查呢?

同样可以在functions.php里加上下面的代码(以中文为例)以实现拼写检查功能:

function fb_mce_external_languages($initArray){     
$initArray[‘spellchecker_languages’] = ‘+Chinese=zh,
English=en’;       

return $initArray; 

add_filter(‘tiny_mce_before_init’, ‘fb_mce_external_languages’);
虽说WordPress内置的TinyMCE编辑器就是一款所见即所得(WYSIWYG)编辑器,然而我们在后台编辑好的文章和在前台看到的效果,总不十分一致。要让后台编辑结果和前台显示效果实现更高的匹配度,其实也不难。

给WordPress编辑器添加自定义按钮

在WordPress编辑器里添加各种按钮,可以给编辑器增加更多功能,让你更方便地编辑文章。

假设我们需要在HTML编辑器里加上一个Google AdSense广告的插入按钮。首先需要编写一段关于Google AdSense的短代码并加入到funtions.php文件里。下面是一个Google AdSense段代码的示例:

function do_adsense() {
  $adsense = “你的AdSense代码”;
  return $adsense;
}
add_shortcode(‘adsense’, ‘do_adsense’);  
完成上面的代码后,我们需要在wp-includes/js文件夹下的quicktags.js文件里加入一段代码。不过操作顺序应该是,在quicktags.dev.js文件里加入代码:

edButtons[edButtons.length] =
new edButton(‘ed_adsense’
,’adsense’
,’[adsense]’
,’’
,’adsense’
);
然后将quicktags.dev.js更名为quicktags.js,替换原有的quicktags.js文件。(为防止意外情况发生,请事先备份这两个文件)

保存并刷新后台的编辑界面,你就会看到新的编辑按钮了,当然你也可以稍微改动其中的代码来添加其他按钮。

分类
电脑技巧

WordPress的30个基本操作

WordPress基础

1. 新增一个【关于我】的网志分页。

2.可以找 找一个优秀的付费主题,例如 WooThemes 或 Themeforest。

3. 为你自己注册一个 Gravatar.com 帐号并上传头像。这有助于你提升品牌形象。

4. 变更预设的Admin 密码,及妥善管理其他作者帐号。

5. 更改网志描述。

6. 删除预设的链结。

7. 建立一个「联系」页面,让读者能够与你取得联系。

8. 加入网站统计代码,它有助于你掌握网站情形。你可以使用Google分析、StatCounter或是任何你想用的服务。对我来说,StatCounter是相当可信赖、速度优异的服务。

(备註:或者你可以安装WordPress.com Stats统计插件,它是个很方便的选择。)

9. 删除预设文章「Hello World」和预设的回复。

10. 设计一个Favicon并且将它挂上。

11. 加入隐私政策或是免责声明页面。

12. 注册FeedBurner。有很多方式可以提升博客人气,最好提供RSS Feed。

13. 自订404错误页面,将热门文章、热门讨论等等内容加入404页面,让你的访客能有更多选择。错误页面不该是条死路,至少不要让访客轻易离开。

WordPress设定

14. 设定固定链接。在你开始写作或者发布文章以前,最好为文章编辑固定网址。在设定 → 固定网址里,我使用的形式为 /%postname%/ 。

15. 开启阶层式回复功能。在设定 → 评论 → 其他评论选项,并将层次设定为 5 。

16. 在站长工具新增你的网站。Google网站管理员工具提供许多功能,可以让你加入网站地图,使搜索引擎能够更快索引你的网站。并提供统计讯息及错误纪录,值得一用。

17. 再次检查你的域名名称。如果你要做任何变更,最好当机立断,马上去做。

WordPress插件

18. Akismet – WordPress预设的插件。在WordPress.com註册帐号并取得API金钥,启用后就能有效阻挡垃圾留言。

19. Digg Digg – 这是一个集合许多社交网路按钮的插件,其中将 Digg, Reddit, Dzone, Yahoo Buzz, TweetMeme(Twitter), Facebook, Polladium, StumbleUpon, Delicious, Sphinn, Post Comments, Google Buzz, Designbump, Designfloat 等等整合。

20. W3 Total Cache – 提升博客速度的第一步,我想这不会太困难,与安装一般插件差不多。

21. Subscribe to Comments – 订阅评论是一个相当强大的功能,让评论者能够在有新评论时收到电子邮件通知。这个插件包含完整的订阅管理器,留言者能够取消订阅、停止通知,甚至变更他们的电子邮件地址。

22. CommentLuv – 这个插件能访问留言者的网站,显示他们网誌的最新文章、tweets或digg.

23. All-In-One-SEO – 安装All-In-One-SEO插件,设定你的日志标题、日志描述以及日志关键字。

24. Nofollow Case by Case – 什么都不用做,插件会自动将留言的nofollow标签移除。

25. Google XML Sitemap – Google Sitemap插件能够在你发佈文章时自动为网誌产生网站地图。

26. WordPress Related Posts – 如果读者喜欢你的文章,你可以做的是把更多的文章摆在他们眼前,让他们能不断从你的日志里挖掘内容。

27. Login Lockdown – 安装此插件以增强日志安全性。

28. WP-DBManager – 加入此插件,建立备份资料库。

WordPress SEO

29. 使用你的关键字词组来建立分类。

30. 新增日志标题和描述,将你的主要关键字放在设定里。