标签: wordpress

  • WordPress局域网内外同时访问解决办法

    我的配置环境:
    服务器架设在家里的电脑上,固定局域网IP:192.168.1.100, 使用电信网络,有公网IP,但80端口不能用,有自己的域名:www.xxx.cn
    使用花生壳动态域名更新IP到自己的域名。nginx配置虚拟主机局域网外端口23456,局域网内端口80,主页目录一样。
    WordPress放在网站根目录下的wordpress文件夹。设定界面,siteurl和home都设置的http://www.xxx.cn:23456/wordpress
    外网访问没问题,内网访问http://www.xxx.cn:23456/wordpress,无法打开,访问192.168.1.100/wordpress也不可以。
    按照网上的方法,修改数据库里的siteurl和home为/wordpress, 局域网外访问不正常(有的页面能打开,如管理员界面,但主页打不开)。

    (更多…)
  • 关闭评论

    一直以来用服务器开WordPress,并没有太多设置。2008年注册后直接开通博客坚持到现在,11年了。

    现在只是希望能保持可以访问到,购买了特价的vps发现评论却是一大问题,之前大量的垃圾评论被akismet拦截并没有太在意,现在发现还蛮占用资源的。

    综合考虑决定21天之前文章的关闭评论。以此希望能够保持可访问。

  • 解决升级 WordPress 时提示”另一更新正在进行”

    这是由于在升级Wordpress时,Wordpress会在数据库wp_options表中增加core_updater.lock记录。如中途打断Wordpress升级,这个记录会留在数据库中。当下次升级时,Wordpress检测到此记录的存在就会返回”另一更新正在进行”。可通过以下方法解决:

    方法一、通过MySQL数据库管理工具(比如 phpMyAdmin),在 wp_options表中找到 core_updater.lock记录并将这一列数据删除。

    方法二、通过终端登录数据库,假设表前缀是wp_,数据库是wordpress,

    mysql -u root -p use wordpress; select * from wp_options where option_name=’core_updater.lock’;

    deletefrom wp_options where option_name=’core_updater.lock’;

  • 彻底解决wordpress安装主题或插件需要FTP问题

    很多小伙伴在使用Wordpress的时候,都会出现安装主题或插件需要FTP的情况,有些朋友填入以后,结果还是无法下载和安装。其实主要是烦,每次安装个插件都需要数据ftp的账号和密码;其实这个问题解决起来要注意几个问题:

    一、使用WinSCP连接阿里云服务器,进入wp-content目录,新建tmp文件夹,设置文件夹的权限为777,命令chmod -R 777 tmp

    二、在WinSCP中返回网站根目录,找到wp-config.php这个PHP文件,下载到本地,或者直接在Winscp上编辑

    三、在wp-config.php中添加下列三行代码:

    【使用记事本编辑器,推荐使用:Notepad++,sublime等】

    define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);/* WordPress的临时目录。*/

    define(“FS_METHOD”, “direct”);

    define(“FS_CHMOD_DIR”, 0777);

    define(“FS_CHMOD_FILE”, 0777);

    注意:要在定义ABSPATH的后面,即在它的后面添加

    if ( !defined(‘ABSPATH’) )

    define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

    ================================

    最后的代码应该是:

    if ( !defined(‘ABSPATH’) )

    define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

    define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);

    define(“FS_METHOD”, “direct”);

    define(“FS_CHMOD_DIR”, 0777);

    define(“FS_CHMOD_FILE”, 0777);

  • wordpress(网页)实现分享到微信朋友圈

    function WeiXinShareBtn() {
    if (typeof WeixinJSBridge == “undefined”) {
    alert(“自定义文字,提示给访客的 “);
    } else {
    WeixinJSBridge.invoke('shareTimeline', {
    “title”: “<?php echo trim(wp_title(”,0)); ?>”, //获取文章标题
    “link”: “<?php $current_url = home_url(add_query_arg(array())); ?> “, //获取文章地址
    “desc”: ” <?php $key=”description”; echo get_post_meta($post->ID, $key, true); ?> “,//获取文章再要摘要
    “img_url”: “<?php echo catch_that_image() ?>” //获取文章第一张图片
    });
    }
    }

    需要把下面的代码放在functions.php中

    //获取第一张图片
    function catch_that_image() {
    global $post, $posts;
    $first_img = ”;
    ob_start();
    ob_end_clean();
    $output = preg_match_all(‘/<img.+src=[\’”]([^\’”]+)[\’”].*>/i’, $post->post_content, $matches);
    $first_img = $matches [1] [0];

    if(empty($first_img)){ //Defines a default image
    $first_img = “http://www.aips.me/wp-content/uploads/2013/05/weixin.jpg”;
    }
    return $first_img;
    }

     

     

    (更多…)

  • wordpress主题开发

    本文介绍如何开发设计你自己的 WordPress 主题。如果你希望了解更多如何安装和应用主题的内容,请参阅应用主题文档。本文的内容不同于应用主题,因为所讨论的是编写代码去构建你自己的主题的技术内容,而非怎样去激活主题或者是哪里可以获得新主题。

    为什么要使用 WordPress 主题
    WordPress 主题由一系列文件和 CSS 样式表构成,构成了一个美丽的 WordPress 网站。每个主题都是不同的, 这样WordPress用户就可以随时更改 WordPress 网站的外观。

    你也许想为自己开发 WordPress 主题,或者制作公开发行的的主题。但是除了这个为什么要自己制作主题呢? (更多…)

  • 让WordPress通过HTML5校验

    很久没折腾wordpress了,之前自己弄了个模版,然后希望是支持html5的,写完了发现wordpress本身会多出一些属性,还是让我无法通过html5校验。不过想想wordpress会注意到的吧,于是就没有修改主题。

    不过最近偶然点击了下校验依然还是无法通过,于是百度下吧,果然有人弄出解决办法了,果然把代码丢尽模版里面,html验证通过。

    <?php
    foreach(array(
    ‘rsd_link’,//rel=”EditURI”
    ‘index_rel_link’,//rel=”index”
    ‘start_post_rel_link’,//rel=”start”
    ‘wlwmanifest_link’//rel=”wlwmanifest”
    ) as $xx)
    remove_action(‘wp_head’,$xx);//X掉以上
    //rel=”category”或rel=”category tag”, 这个最巨量
    function the_category_filter($thelist){
    return preg_replace(‘/rel=”.*?”/’,’rel=”tag”‘,$thelist);
    }
    add_filter(‘the_category’,’the_category_filter’);
    ?>

    以上代码放入functions.php

  • 5种方法让你的 WordPress 博客获取更多订阅量

    但如果你有很多的订阅读者,但是却没有一个在你的文章上评论,那么这也是不算数的。所以我将和你们分享5个可以提高真实订阅读者数量,并且提高读者响应积极性的方法。

    一、获取邮箱就好了

     

    如果你需要更多的订阅者,只需要让他们留下邮箱就可以了,别的信息都不需要去询问。给大家一个例子吧,copyblogger.com 请求用户订阅的时候只索取email 地址。没有姓名,没有电话号码,住址等等个人信息。

    以前的话用姓名作为邮件的标题的确是一个好的邮件营销策略,但是现在基本上都会被当作是垃圾邮件了。普通人哪里会在邮件标题就写上你的名字的,只有垃圾邮件会这样做。所以询问姓名等信息是没有必要的,只输入一个邮箱,确认下就完成订阅,那不是很愉快的事情吗?

    二、告诉他们为什么订阅你的博客

     

    很多订阅邀请都是告诉读者注册或者是订阅,很少有告诉原因的。读者订阅了你的博客,博客更新了,他们能获取到什么消息呢?那些注册用户能得到什么实际的利益呢?这些都是需要在邀请的时候说清楚的。看看以下三个邀请,哪个更应该呈现给你的读者。

    “订阅以获取我们博客的更新”

    “订阅以获取我们的每周精选”

    “订阅以免费获取 WordPress 难题的解决方法”

    应该都会选择第三个吧,实际上,读者们并不会关心我们可能花了10个小时弄出来的精选。他们只关心他们的问题有没得到解决。所以当你告诉读者为什么订阅你的博客的时候,告诉一些对他们有实际意义的东西吧。

    三、使用社会认同

     

    社会认同是一个很好的方法来驱除用户在订阅时的“恐惧障碍”。记得在大学的时候,朋友叫我去做一件事的时候总会说一句:“现在每个人都在这样做呢”

    实际上这很有用。如果你已经有了100,500或者是1000个读者,当你邀请新读者订阅的时候可以告诉他们。

    例如:

    “订阅以加入500人明智读者群,一起通过本博客来解决 WordPress 难题。”

    我不仅告诉新用户本博客已经有500个订阅,还告诉现在订阅将是一个明智的选择,如果他们现在订阅的话,也将是明智的举动。

    四、订阅的位置很关键

    有市场调查表明,页面的右上角是放置订阅邀请的最佳位置。我还发现这个位置还能够在某种程度上使用户去浏览一下你的文章。你是否有这样的体验,文章看到一半,突然来一句:需要查看完整信息,请注册.. 其实没有必要,你只需要在右上角放上订阅邀请就好了。你需要做的就是去写一些高质量的文章给你的读者们。

    五、不要光写叙述类的文章,要会互动

     

    这个的确是比较难掌控。但是现在很多热门的 WordPress 社区之所以会热门,不是因为他们的质量,而是因为他们开始讨论的话题。

    如何写一篇可以引起话题的文章呢?这其实也没有什么神奇法则,但是我发现有以下三个因素是很容易使用户主动留言参与互动的。

    话题的流行度:越是热门的流行话题,越多人来回复。

    与生活的结合:与我们的生活经验关联越紧密的话题也是很所以引起讨论的。

    具有争议性: 有争议性的东西总能够引起关注,不管是积极的还是消极的,讨论总是会很有趣。

    下次在你发文章的时候不妨也想想这个三个因素,在接下来的10篇文章里都试试看,看看是否能吸引来更多的读者。

  • wordpress 插件 Pretty Link Lite

    这是一个十分友好的为您网站创建短链接的插件,可以将外部的链接映射到这些短链接,并且可以跟踪链接的每一次点击,而且提供详细的报告,包括来访者ip、来访者使用的浏览器、操作系统等。同时它还是一个可以很好地管理您的赚钱链接的工具,此外,您还可以使用它创建的链接在论坛、其他门户网站、博客中推广您的网站。

    使用方法:

    首先,您需要设置您博客固定链接的格式,只要不是默认选项就行了。

    wordpress站内链接跳转到外部链接1

    然后,创建一个pretty link,如下图,一般您只需要填写你的目标链接(就是你点击后跳转到的链接)、内部链接(自动生成,可修改)、标题、描述就可,有一些高级选项,你可以保留默认。

    wordpress站内链接跳转到外部链接2

    其中有两个比较重要的选项在这里说一下,

    第一个是Redirection Type,有两个值,分别是301和307

    301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做链接跳转。

    302 redirect:302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

    在使用上,307和302基本上是一样的。

    第二个是SEO options的Nofollow属性,该属性始创于谷歌,现在已经为各大搜索引擎所接受。原本是用来控制博客上的垃圾评论,现在rel=”nofollow”实际上是告诉引擎“不要对这个链接排名”,而不是“不要访问这个链接”。

  • 让wordpress通过HTML5验证

    <?php   foreach(array(     ‘rsd_link’,//rel=”EditURI”     ‘index_rel_link’,//rel=”index”     ‘start_post_rel_link’,//rel=”start”     ‘wlwmanifest_link’//rel=”wlwmanifest”   ) as $xx)   remove_action(‘wp_head’,$xx);//X掉以上   function the_category_filter($thelist){//rel=”category”或rel=”category tag”, 这个最巨量     return preg_replace(‘/rel=”.*?”/’,’rel=”tag”‘,$thelist);   }   add_filter(‘the_category’,’the_category_filter’); ?>

    将以上代码加到functions.php里面去,Wordpress就不会生成烦人无用的rel属性了

  • 亦歌wordpress插件1g1g

    使用WordPress搭建的博客,安装此插件后,可以在文章或页面中分享作者喜爱的歌曲。

    该插件提供搜索功能,作者输入关键字,即可搜索出希望分享的歌曲。分享后页面中自动出现亦歌迷你播放器,播放分享的歌曲。

    在管理平台的“插件”->“添加新插件”中,搜索“1g music share”,即可找到此插件,轻松安装。

    安装WordPress分享插件

  • 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文件。(为防止意外情况发生,请事先备份这两个文件)

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