WordPress 高级技巧总结
只针对搜索引擎用户显示广告
打开当前主题中的 funtion.php 文件,把下面代码放入其中:
1 2 3 4 5 6 7 8 9 | function scratch99_fromasearchengine(){ $ref = $_SERVER['HTTP_REFERER']; $SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.'); foreach ($SE as $source) { if (strpos($ref,$source)!==false) return true; } return false; } |
完成以上的步骤后,粘贴以下代码到你任何想显示广告的地方,他们将只会显示给从搜索引擎来的用户。
1 2 3 4 5 6 | if (function_exists('scratch99_fromasearchengine')) { if (scratch99_fromasearchengine()) { INSERT YOUR CODE HERE // 这里插入你的广告代码 } } |
注:这个技巧创建了一个名为scratch99_fromasearchengine()的函数,这个函数包含了一个 $SE 数组变量,从而使你可以自定义搜索引擎。你可以添加新的元素来轻易的添加新的搜索引擎到数组。
函数scratch99_fromasearchengine() 会自动转变为 true //是 如果用户是来自数组变量中的搜索引擎。
在第一篇文章后显示Google AD
很多人问crazyfrom如何在第一篇文章后面显示Google广告,其实很简单,只需要在循环中加一个变量 ($loopcounter) ,如果 $loopcounter小于或等于1,则加入 google-ad.php 代码。
1 2 3 4 5 6 7 8 | <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); $loopcounter++; ?> // 循环 <?php if ($loopcounter <= 1) { include (TEMPLATEPATH . '/ad.php'); } ?> //如果小于等于1则加入GA <?php endwhile; ?> <?php else : ?> <?php endif; ?> |
自定义域(Custom Fields)
自定义域(Custom field )是WordPress最强大的功能之一 。你可以连同文章和摘要附加额外的数据和文字。在自定义域,你可以逐字地把 WordPress变成CMS入口。例:把下面的代码加到循环中,以显示文章图片并附加文章链接。
1 2 3 4 | <?php //get article_image (custom field) ?> <?php $image = get_post_meta($post->ID, 'article_image', true); ?> <a href="<?php the_permalink() ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" /></a> |
在后台文章编辑的自定域里,添加“article_image”就ok
创建页面模板(Page Template)
有了也没模板,你可以自定义页面显示
首先,你需要创建一个页面模板,然后你可以为页面指派特定模板。 下面是页面模板的结构 (yemian.php):
1 2 3 | <?php /* Template Name: yemian */ ?> <?php get_header(); ?> //the loop here <?php get_footer(); ?> |
当你撰写或编辑一个页面,注意右边菜单 “Page Template” 你就可以看到可用的模板。
WP页面列表
站点地图(Site map)
把下面的代码放到你的站点新建的地图页面模板(Page Template )中,为所有的页面生成一个站点地图(sample):
1 | <ul> <?php wp_list_pages('exclude=12&title_li=' ); ?> </ul> |
注意:此代码排除了pageID 12 ,因为page12 是站点地图页面,我不想让它显示!
动态二级页面菜单
如果当前页面有二级页面,把下面的代码加入sidebar.php 将输出二级页面菜单:
1 2 3 4 5 | <?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); if ($children) { ?> <ul> <?php echo $children; ?> </ul> <?php } ?> |
强制使用 SSL 加密登录
为了增强网站安全性,有很多人都购买了带 SSL 加密的主机。WordPress 从 2.6 开始支持使用 SSL 地址登录后台。查找以下代码:
1 | define('FORCE_SSL_ADMIN', false); |
把 false 修改成 true 可以让管理员使用 SSL 加密协议登录。继续查找以下代码:
1 | define('FORCE_SSL_LOGIN', false); |
把 false 修改成 true 则可以让所有用户都使用 SSL 加密协议登录。
清空回收站的时间间隔 (2.9)
WordPress 2.9 里加入了一个回收站功能(Trash),可以把不需要的条目放到回收站里,WordPress 默认每 30 天清空一次回收站。如果你要修改这个间隔的话,可以在 wp-settings.php 里查找以下代码:
1 | define( 'EMPTY_TRASH_DAYS', 30 ); |
把 30 修改成你喜欢的天数即可。
修改自动保存间隔时间
打开 WordPress 根目录里的 wp-config.php(2.9版本在 wp-settings.php 里),找到以下的代码:
1 | define( 'AUTOSAVE_INTERVAL', 60 ); |
这个常量是 WordPress 自动保存的间隔时间,把 60 修改成你想要的秒数即可。
关闭生成修订版功能
继续查找以下代码:
1 2 3 | $default_constants = array( 'WP_POST_REVISIONS' => true ); // 如果没有这句的话则查找 define('WP_POST_REVISIONS', true ); |
把 true 改为 false 可以关闭生成修订版本的功能,节省数据库容量 (这个值也可以设置为大于 0 的整数,表示允许生成修订版的最大数量)。 另外,在 WordPress 2.9 以前,还可以查找 define(‘WP_POST_REVISIONS’, 3); 修改 3 为修订版的最大数量。
自动提取文章中的图片
使用自定义字段,在文章中显示相关的图片当然是个好主意,但很多WordPress用户希望能有一个寻取插入文章内容自身中图片的方法。
而利用循环就能完成此功能!在你主题的任何位置粘贴以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php $szPostContent = $post->post_content; $szSearchPattern = '~<img [^>]* />~'; // Run preg_match_all to grab all the images and save the results in $aPics preg_match_all( $szSearchPattern, $szPostContent, $aPics ); // Check to see if we have at least 1 image $iNumberOfPics = count($aPics[0]); if ( $iNumberOfPics > 0 ) { // Now here you would do whatever you need to do with the images // For this example the images are just displayed for ( $i=0; $i < $iNumberOfPics ; $i++ ) { echo $aPics[0][$i]; }; }; endwhile; endif; ?> |
创建一个“发送到Twitter”的按钮
这个技巧很容易完成,你唯一要做的事就是创建一个带有参数状态//status parameter 的连接给twitter,因为我们使用的WordPress 博客,我们能使用函数 the_permalink() 来获取页面的连接:
1 2 | <a href="http://twitter.com/home?status=Currently reading <?php the_permalink(); ?>" title="Click to send this page to Twitter!" target="_blank">Share on Twitter</a> |
很简单,不是吗?却很实用。
头部图像随机显示
首先,选择一些图片作为你博客头部的图片,命名为header1.png、header2.png、header3.png 等,你可以使用你喜欢的许多图片。
2.上传这些图片到你当前主题的images文件夹里。
3.打开 header.php 插入以下代码到里面:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $result_random=rand(1, 99); if($result_random<=33){ ?> <div id="header" style="background:transparent url(images/header1.png) no-repeat top left;"> <?php } elseif($result_random<=66){ ?> <div id="header" style="background:transparent url(images/header2.png) no-repeat top left;"> <?php } elseif($result_random<=99){ ?> <div id="header" style="background:transparent url(images/header3.png) no-repeat top left;"> <?php } ?> |

