Archive for the ‘原创技术文章’ Category

如何在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: 33%

ecshop关闭版本检查的功能

二月 27th, 2009

要修改如下几个文件

\upload\admin\shop_config.php(205):
\upload\install\includes\lib_installer.php(734):
\upload\admin\templates\start.htm
\upload\admin\templates\menu.htm

 

备案

Popularity: 28%

ecshop和discuz的2段代码

二月 24th, 2009

最近想装一下ecshop和discuz2个程序,装的时候看到2段代码
ecshop的

  1. <script type=”text/javascript” src=”http://api.ecshop.com/checkver.php?ver=<?php
  2.  echo $this->_var['ecs_version']; ?>&lang=<?php
  3.  echo $this->_var['ecs_lang']; ?>&release=<?php 
  4. echo $this->_var['ecs_release']; ?>&php_ver=<?php 
  5. echo $this->_var['sys_info']['php_ver']; ?>&mysql_ver=<?php 
  6. echo $this->_var['sys_info']['mysql_ver']; ?>&ocount=<?php 
  7. echo $this->_var['order']['stats']['oCount']; ?>&oamount=<?php
  8.  echo $this->_var['order']['stats']['oAmount']; ?>&gcount=<?php
  9.  echo $this->_var['goods']['total']; ?>&charset=<?php
  10.  echo $this->_var['ecs_charset']; ?>”></script>

discuz的

  1. <script src=”http://<?=$insenz[url]?>/news.php?id=<?=$insenz[siteid]?>&t=<?=$timestamp?>&k=<?=md5($insenz[authkey].$insenz[siteid].$timestamp.’Discuz!’)?>&insenz_version=<?=INSENZ_VERSION?>&discuz_version=<?=DISCUZ_VERSION.’ - ‘.DISCUZ_RELEASE?>&random=<?=random(4)?>
  2. type=”text/javascript” charset=”UTF-8″></script>
  3. echo ‘<sc’
  4. .'ript language=”Jav’.'aScript” src=”
  5. ht’.'tp:/’.'/cus’.'tome’.'r.disc’.'uz.n’.'et/n’
  6. .'ews’.’.p’.'hp?’.bbsinformation().’”></s’.'cri’.'pt>’;

恩,很好很强大

Popularity: 27%

google脑子进水了

一月 31st, 2009

2009年1月31号23点30分左右,想看一下网站的收录情况,一看,居然网站说“该网站可能含有恶意软件,有可能会危害您的电脑。”,换英文Google,说”This site may harm your computer.”,问别人也说看到的是同样的内容。
把我吓坏了,看别的网站,很多也有这种情况。
过了几分钟看,发现好了。
真是进水

Popularity: 21%

python版本的jquery

一月 5th, 2009

jquery在做html内容提取,分析的时候很方便。而python做类似的工作就麻烦一点,原来我都是用正则表达式或者HtmlParser的。
两者用着都不是太爽,今天发现了一个好东西 pyquery ,一个类似jquery的python库。
摘抄一段使用说明

  1. >>> from pyquery import PyQuery as pq
  2. >>> from lxml import etree
  3. >>> d = pq("<html></html>")
  4. >>> d = pq(etree.fromstring("<html></html>"))
  5. >>> d = pq(url='http://google.com/')
  6. >>> d = pq(filename=path_to_html_file)

Now d is like the $ in jquery:

  1. >>> d("#hello")
  2. [<p#hello.hello>]
  3. >>> p = d("#hello")
  4. >>> p.html()
  5. 'Hello world !'
  6. >>> p.html("you know <a href='http://python.org/'>Python</a> rocks")
  7. [<p#hello.hello>]
  8. >>> p.html()
  9. 'you know <a href="http://python.org/">Python</a> rocks'
  10. >>> p.text()
  11. 'you know Python rocks'

简单吧,安装也很简单
下载

http://pypi.python.org/packages/source/p/pyquery/pyquery-0.3.tar.gz

解压缩
python setup.py install
就可以了,可能要安装ezsetup
现在的版本是0.3,还有一些jquery的东西没有实现,比如:radio,:password,以及一些ajax的功能,但是已经够用了,强烈推荐。
赶紧试试吧。

还有一个BeautifulSoup,也推荐一下

Popularity: 38%

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: 34%

wordpress如何取得当前的分类id

十二月 1st, 2008

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

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

Popularity: 37%

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: 23%

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: 34%

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: 26%