现在写个博客很不容易,还被抄袭或者转载,于是很多博主在文章底部会加入版权声明和链接。希望有些尊重版权的互联网人能在转载的时候给留个链接和出处。但是如果每篇文章都手动加入的话会很麻烦,而 WordPress 博客可以很容易的实现自动加入版权声明和链接。
原来 Liboseo 使用的是直接在文章模版里的文章下面添加代码,我使用的是 WordPress 官方的 twentyten 主题修改的,所以编辑主题里的loop-single.php,找到下面这段代码:
<div >
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div
>' . __( 'Pages:', 'twentyten' ), 'after' =>
'</div>' ) ); ?>
</div><!-- .entry-content -->


<?php the_content(); ?>
后面直接加入下面的代码:
<pre> 转载请注明来自<a
>CMS 集中营</a>,本文地址:<a href=<?php
the_permalink(); ?>' title='<?php the_title(); ?>'><?php
the_permalink(); ?></a>
除非注明,CMS 集中营文章均为原创,转载请注明出处和链接!</pre>

但是出了个问题,就是如果安装了一些 wumii 或者百度分享之类的插件的话,上面添加的内容只能显示在无觅之类的下面,而不是紧紧贴着文章。显然这个不是我们要的效果。
经过各种测试,终于通过主题的自定义函数解决了。
方法很简单,因为之所以我们添加的内容不能紧贴着文章,就是因为这些插件将内容插入到了 the_content(); 函数里,而这个函数是
WordPress 程序默认的函数。我们如果直接修改 the_content(); 函数,那么如果升级 WordPress 程序的话,就会被覆盖。
于是我通过在主题的functions.php文件,在最下面添加了一个自定义的函数 liboseo_content();,内容如下:
function liboseo_content($more_link_text = null, $stripteaser = 0) {
$content = get_the_content($more_link_text, $stripteaser);
$content.= "<pre> 转载请注明来自<a >CMS 集中营</a>,";
$content.= "本文地址:<a href='".get_permalink($post, true)."'
title='".get_the_title($post_id)."'>".get_permalink($post,
true)."</a>";
$content.= "
除非注明,CMS 集中营文章均为原创,转载请注明出处和链接!</pre>";
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
echo $content;

然后把主题中的文章模版里的 the_content(); 替换成自定义的函数,比如我用的主题模版文件是 loop-single.php,就直接将 the_content(); 修改成 liboseo_content();,变成了:
<div >
<?php liboseo_content(); ?>
<?php wp_link_pages( array( 'before' => '<div
>' . __( 'Pages:', 'twentyten' ), 'after' =>
'</div>' ) ); ?>
</div><!-- .entry-content -->

保存一下看看吧,是不是成功了?修改之前一定要备份原来的文件,如果可能的话,最好在本地测试好之后,再在网站上修改。