Posts Tagged ‘wordpress’

申请到了sina app engine(sae)

二月 10th, 2010

gae,该知道的人都知道,sae是sina的application engine。还没有正式开放,运气好,正好赶上第二次发送邀请。申请了一下。还居然通过了。传了一个阉割的WordPress上去。先用用再说。
地址是:http://gift.sinaapp.com/。希望有同好的交流。

Popularity: 3%

如何在wordpress的the_excerpt中使用nextgen-gallery(NGG)图片

三月 5th, 2009

NextGEN gallery是个很不错的wordpress相册插件。
新版本的wordpress有了一个the_excerpt的方法可以用,原来就有?不知道。
the_excerpt主要是调用原来的摘要部分,供模板调用。但是和the_content的区别是,the_excerpt里面不支持nextgen-gallery(NGG)的singpic,gallery等标签不能用。如果在模板里面用了the_excerpt,但是又想显示图片就不方便了。
用的是1.1.0版本,查了一下代码,找到
lib\shortcodes.php

class NextGEN_shortcodes
大概在18行,看到一行注释,说如果在the_excerpt里面用会有不期望的输出。如果你高兴就去掉下面的注释。

  1. // add_filter('the_excerpt', array(&$this, 'convert_shortcode'));
  2. // add_filter('the_excerpt', 'do_shortcode', 11);

改成

  1. add_filter('the_excerpt', array(&$this, 'convert_shortcode'));
  2. add_filter('the_excerpt', 'do_shortcode', 11);

测试可以,没发现啥异常。先用着吧。

Popularity: 34%

wordpress如何显示和分类相关的热门文章

十二月 3rd, 2008

Popularity Contest是个不错的插件,可以根据点击量,评价次数,trackbacks等计算一个文章的受欢迎程度,然后列出来。为了跟用户当前浏览的页面相关性更好,我做了一些修改。
这个插件有2个function可用
akpc_most_popular_in_cat和akpc_most_popular,分别是指定一个分类id或取当前分类和所有的排名。
但是akpc_most_popular_in_cat有一点问题,就是原来的sql语句是在show_top_ranked_in_cat里面的sql是
WHERE tt.term_id = ‘”.intval($cat_ID).”‘
这样,只能在一个分类里面查找,需要修改成支持多个分类id的。改成如下
WHERE tt.term_id in (“.$cat_ID.”)
这样就支持多个分类id了,还有一个问题是取的当前的相关分类id,我们已经解决了。在sidebar.php里面加入如下代码,即可。根据不同的theme,可能需要做些调整。

<li id="hot-article" class="sb1">
<h2 class="widgettitle">热门文章</h2><ul class="pop">
    
<?php if ( function_exists('akpc_most_popular') ) : ?>
    
<?php if (is_category()) {
        
//echo $cat;
        
$categoriesget_categories('child_of='.$cat);
        
$categoryIDS = array($cat);
        
foreach ($categories as $category) {
            
array_push($categoryIDS, $category->term_id);
        
}
 
        
$categoryIDS = implode(",", $categoryIDS);
        
akpc_most_popular_in_cat(10, "<li>", "</li>", $categoryIDS) ;
    
}else if ( is_single()){
        
$categories = get_the_category();
        
$categoryIDS = array();
        
foreach ($categories as $category) {
            
array_push($categoryIDS, $category->term_id);
        
}
        
$categoryIDS = implode(",", $categoryIDS);
        
akpc_most_popular_in_cat(10, "<li>", "</li>", $categoryIDS) ;
    
}else{
        
?>
        
<?php akpc_most_popular($limit=10); ?>
    
<?php }
endif; ?></ul>
</li>

Popularity: 35%

wordpress如何取得当前的分类id

十二月 1st, 2008

wordpress的很多sidebar展示内容都是静态的,比如最新评论,最新文章等。不管首页,分类,还是单页都是一样的。原来写过一篇如何显示wordpress当前分类的文章列表?,这是针对single page的。其实还可以在分类页面做一些工作。
单个的文章页面很简单就用
get_the_category
返回的是一个对象的数组,因为一个文章可能属于多个分类。
分类页面简单的可以直接用
$cat
这个变量,但是这样其实是不完美的,因为当前分类还可以有子分类,怎么拿当前分类的所有子分类id呢?用
get_categories(‘child_of=’.$cat);

下一篇贴一个把分类相关的热门文章列在侧边栏的代码。

Popularity: 38%

wordpress 2.6.5更新文件列表

十一月 26th, 2008

共更新了6个文件,替换掉,ok

\wp-admin\users.php
\wp-content\plugins\akismet\akismet.php
\wp-includes\feed.php
\wp-includes\post.php
\wp-includes\version.php
\xmlrpc.php

Popularity: 24%

wordpress simple tags标签自动链接无效的解决

十一月 21st, 2008

随着wordpress自带了tag功能后,伴随了俺很久的Ultimate Tag Warrior 3也完成了他的历史使命,光荣退休了。
虽然有了这个功能,但是功能比较弱,后来发现了simple tags这个插件,功能强大的忒多了。批量管理、修改啥的都有了。今天说的是其中一个在日志内容中自动加入标签链接的功能,即:我这里已经有了一个“WordPress”标签,并且日志含有短语“WordPress”,该功能将把“WordPress”短语替换成“WordPress”的标签页链接(http://www.juyimeng.com/tag/wordpress/)。
这个功能我后台打开后,发现不能用。因为有原来前面修改Blog Mechanics Keyword Link的经验,所以就顺藤摸瓜,找到了
simple-tags/2.5/simple-tags.client.php文件,在大约第265行。将

$match = "/\b" . preg_quote($term_name, "/") . "\b/".$case;

换成

$match = "/" . preg_quote($term_name, "/") . "/".$case;

问题解决。原因一样。老外作的东西,没考虑中文,他们的word之间会有空格我们没有,所以,把\b去掉,即可。
但是会出现吧关键字“word”,遇到wordpress中的前4个字母也替换掉的情况。
莫非要区分中英文对待?那么就要用2个正则,而且可能中英文混合。那就麻烦大了。
先用着再说吧。:D

Popularity: 35%

wordpress开启cache后的一些问题

十一月 11th, 2008

继上篇如何使wordpress 2.6.X启用缓存加速开启word2.6.3的cache后,速度感觉有所提高。但是出现了一些问题。
一个是如果关闭cache,则会出现了

WordPress database error: [Table 'wp.wp_categories' doesn't exist]
SELECT * FROM wp_categories
?>

的报错信息。查了一下,是因为版本不兼容的问题,用的是老版的cache.php,里面有一个取分类的功能。原来有XXcategories这个表的。没办法
找到

if ($dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories"))

替换成

if (1<0 && $dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories"))

让这一句不执行就没错误,也可以正常显示了。
最好的办法应该是找到其他的版本,或者修正这句话。。。等空下来再说。//TODO

另外一个问题是开了cache后,评轮的次数也会缓存,就是后台你审核或者删除评论,次数不变。要等缓存清除后才能正确显示,偶的解决方法比较野蛮:
找到

wp_update_comment_count($comment->comment_post_ID);

大概是在787 行,在return前增加一句wp_cache_flush();即可。
应该也有更优雅的方法,比如搞个插件啥的。。可是偶现在不会。。

Popularity: 27%

如何使wordpress 2.6.X启用缓存加速

十一月 8th, 2008

一直觉得wordpress的性能不好。打开它自己的查询次数和花费时间统计,一个首页有44的查询,一个单文章页面有52次查询。上边这些数字可能跟我装的一些插件或者增加的功能有关。网上说可以开启自带的cache缓存功能。
define(‘ENABLE_CACHE’, TRUE);
在2.6.3版本却不行,google了半天的,检查了半天的文件夹属性,还是不行。于是换了一个用老wordpress的网站,用的是2.1.3,打开后却马上可以了。百思不得其解。又是检查了半天。直到最后要放弃了,把2个wp-include/cache.php文件都拿下来做对比,发现区别很大。把老的cache.php替换到2.6.3上,马上就可以了。原来
wp 2.6.3的cache.php 和 2.1.3不一样,启用后,效果还可以。首页的查询从44次数降到了11,单个文章页面,从52减少到了15次。总体花费的时间变化倒不是很大。但是心理感觉还是不错的。

开启后有2个问题,一个是未审核留言的数字,被缓存了。还有一个是换了cache.php文件后,如果关闭缓存,会在头部有一个抱错信息。说是SELECT * FROM wp_categories 。这个表不存在。

下篇再说怎么解决。

Popularity: 28%

不让Most Commented显示页面的评论

十一月 7th, 2008

wordpress的Most Commented插件不错,可以显示现在评论最多的文章和页面。
但是有个问题,有些网站的留言本和某些页面也是可以留言的,那么留言最多的就肯定是这些个页面了。于是想去掉页面(page)的评论,只要文章的。
修改很简单找到

if (!$show_pass_post) $request .= " AND post_password =''";

在后边,添加

$request .= " AND post_type  !='page' ";

即可。
测试成功。

Popularity: 48%

如何显示wordpress当前分类的文章列表?

十一月 4th, 2008

wordpress单个文章页面的侧边栏如果还是显示和首页,分类页面一样的文章就没什么意思了。下面的代码是显示文章所属分类的文章列表,这样可以让访问者可以方便查看相关文章。回头再改改,看看能不能在分类页面上显示最受欢迎的文章。
添加下列代码在合时的位置即可

<?php
/*
single page?show current category articles
*/

?>
<?php
if ( is_single() ) :
global $post;
$categories = get_the_category();
foreach ($categories as $category) :
    
?>
    <li class="widget widget_recent_entries" id="
<?php $category->term_id;?>-posts">
        <h2 class="widgettitle">
<?php echo $category->name; ?></h2>
        <ul>
        
<?php
        
$posts = get_posts('numberposts=5&category='. $category->term_id);
        
foreach($posts as $post) :
        
?>
            <li>
            <a href="
<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </li>
        
<?php endforeach; ?>
        </ul>
    </li>
<?php
endforeach; endif ; ?>
<?php
/*
end show current category articles
*/

?>

Popularity: 32%