分类目录归档:WordPress

wordpress主题制作常用到的方法函数

页面编码:<meta charset=”<?php bloginfo( ‘charset’ ); ?>” />;
页面标题:wp_title( ‘|’, true, ‘right’ );
博客名称:bloginfo( ‘name’ );
博客描述:<?php bloginfo( ‘description’ ); ?>
博客样式:<link rel=”stylesheet” media=”all” href=”<?php bloginfo( ‘stylesheet_url’ ); ?>” />
博客主页地址:<a href=”<?php echo home_url( ‘/’ ); ?>”></a>
博客主题地址:<link rel=”shortcut icon” type=”image/x-icon” href=”<?php bloginfo(‘template_url’)?>/img-res/favicon.ico” />
博客导航,一步生成 :<?php wp_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) ); ?>
全局当前页码:global $page, $paged;
wordpress官方列举的全局变量列表: http://codex.wordpress.org/Global_Variables

Continue reading wordpress主题制作常用到的方法函数

WordPress api + 使用指南中文手册CHM版

wordpress中文使用+API手册,根据http://www.wordpress.la/codex.html的内容,制作了离线的chm版本,方便无网络的情况下查询资料。

下载地址:wordpress中文使用+API手册

huige童鞋发现该chm右侧网页打不开 ,并找到原因:要打开的CHM文件上右键属性,会在底下属性中多了一个“解除锁定”,点击后就可以正常显示了。有同样的情况的同学,不妨试试这个方法。

 

Nginx支持wordpress的固定链接

第一种方式来自 http://blog.chenlb.com/2010/10/nginx-deploy-wordpress.html

index  index.php index.html index.htm;
location  / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
}

第二中方式摘自LNMP一键安装包的配置文件:

location / {
if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
        }
if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
        }
if (!-f $request_filename){
                rewrite (.*) /index.php;
        }
}

wordpress插件 – 实现文章发布的固定元数据信息添加

学习一款支付宝插件(http://www.izt.me/wordpress-alipay.html),在发布时候可以添加商品信息的功能。

通过改动其中一个文件meta-box.php来实现自己想要的插件功能。

WP插件个人通过实践以后总结为两步实现的套路:

1、定义自己的php功能函数。

2、通过wp的api挂载此函数 。到此完工。

一句话就是插件功能自己定义好函数,然后告知wp在合适的地方执行就行了。

Continue reading wordpress插件 – 实现文章发布的固定元数据信息添加

使WordPress安装主题插件不再需要提供FTP信息

来源于: http://www.zivee.cn/2010/03/wordpress-plugin-and-upgrade-need-ftp-info/

修改wp-config.php,添加下面两行代码即可,测试有效:

//wp-config.php底部追加下面代码
//其定义值可以为: 'direct', 'ssh', 'ftpext' (ftp方式)or 'ftpsockets'(Socket extension)
define('FS_METHOD', 'direct');
//修改目录权限为0751, 默认是0755
define('FS_CHMOD_DIR',0751);

//在一台服务器测试有效,但是隔了几天后在一个vps测试却无效了,提示
//在wp-content/upgrade/目录无法写入,所以手动创建了upgrade目录,
//并给以权限可以写入
sudo mkdir upgrade;
sudo chmod +w upgrade;

使微博通WordPress插件可以同步特色图片

微博通官网: wbto.cn

参考API: http://www.wbto.cn/wiki/index.php/发布图片微博

从论坛下载他们的 插件文件: wbto.php,只同步文字版,不能同步特色图片,所以去看了下他们的api,研究了下源码,改一下就好了(说起来容易,研究了半天呢)

主要修改一处,添加两行代码:

//找到源码中的这几行

$fields['content'] = urlencode($posted->post_title.'::'.mb_strimwidth(strip_tags($excerpt),0,150,'...').$posted->guid);

//添加这两行代码,目的是获取到特色图片src
$imgThumb = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' );
$fields['imgurl'] = $imgThumb[0];

$ch = curl_init();
//修改一处,这里的url修改为upload.json,而不是原来的update.json
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/upload.json");
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");

修改完,就ok了,至少偶的是ok了。

Continue reading 使微博通WordPress插件可以同步特色图片

linux下的文件重命名

linux下对文件重命名有两种命令: mv  ,rename

mv很简单,move文件移动

mv /dir/file1  /dir2/file1

两个参数,第一个是源文件,第二个是目的地,如果第二个参数文件名不一样,则会重命名。

当两个参数不带目录,只有文件名时,那就是重命名了。这是单个文件的重命名。

rename  arg1  arg2  arg3

rename才是真正的批量重命名命令。而且他是3个参数,不是2个。

arg1:旧的字符串

arg2:新的字符串

arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char],*表示任意多个字符,?表示单个字符,[char]匹配char单个自定的精确字符,可以填写任意字符,foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。

值的注意的是,此命令在不同的linux版本也有不同,Debian一系的操作系统别有用法。举例说明:

比如/home下有两个文件 abbcc.txt, addbb.txt , a.txt

我想把a替换为xxx,命令是这样的 : rename “a” “xxx” *.txt

那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配,如果改成?.txt则只会匹配到一个文件,那就是a.txt。然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a,有待再了解。

说到Debian一系的操作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:

Bareword “a” not allowed while “strict subs” in use at (eval 1) line 1.

经过Google之后发现有这样的说法:

On Debian-based distros it takes a perl expression and a list of files. you need to would need to use:
rename ‘s/foo/foox/’ *

这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式。

所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename ‘s/a/xxx/’ *.txt

由于没有深入应用,今天是群里有人问了,于是自己动手实践了一下,总结上面简单的用法,也算以备后忘吧。

WordPress改造记录

安装了wp,但是很多地方不足以满足需求,记录一下自己的改造部分。

1、代码高亮

做这行工作怎能没有代码,高亮就是第一步想要实现的。
使用Google SyntaxHighlighter高亮插件,直接在添加插件页面搜索即可,然后安装。有Usage页面链接到http://code.google.com/p/syntaxhighlighter/wiki/Usage,看了一下,两种定义方式,使用pre或textarea标签:

<pre name="code" class="c-sharp">
... some code here ...
</pre>
Or
<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>

另外希望编辑器上有个按钮,点击插入源码功能。这个自然应该是涉及到TinyMCE工具栏定制,遂搜索了一下有关代码高亮的内容(本以为这个插件安装后自动有这个功能。。原来是要手动编辑html)。这时发现了一篇说“Google Syntax Highlighter 与WordPress – tinyMCE 的兼容性”, 原来pre标签插入是有问题的,pre的name属性在编辑器的“可视化”与“HTML”方式切换的时候,会将name属性去掉,因为xhtml里name不是pre的标准属性。于是测试了一下textarea标签,发现转换以后,源码的换行会被转为<br />显示在文本域中。。。不尽人意啊。于是按那篇博客所说的方法改造了一下。

在 wp-admin/includes/post.php 里面,搜素到$initArray变量的赋值行,在最后添加一个值:

'extended_valid_elements' => "pre[name|class]"
注:如果你是新手或不懂代码,没看懂以上简略的引用,就去看引用页面吧(上面加了链接的),比较详细。

这个意思看着就明白,额外的有效元素pre拥有有效的属性name和class。这样在编辑器两种编辑模式下转换,就不会丢失name属性了。

编辑器代码插入按钮还在研究ing…

2010-8-16注:今天找到了一个新插件:Auto SyntaxHighlighter,安装以后编辑器就可以拥有插入代码功能了,试了一下,浏览器查看源码发现跟Google SyntaxHighlighter高亮插件有重复的文件引用,所以保留一个插件就可以了。可以在安装新插件的页面搜索:Auto SyntaxHighlighter即可。截图:

Continue reading WordPress改造记录