WordPress原创文章与转载文章显示不同的版权信息

【说明】 本文转载自:http://www.cmhello.com/wordpress-copyright.html

WordPress原创文章与转载文章显示不同的版权信息,这是倡萌一直想要的功能,因为 倡萌的自留地 有原创和转载的文章,如果转载了文章还显示原创版权信息,实在是不好。今天偶然看到了袖子的文章,才获得了解决的办法:对每篇文章增加一个标记来区别是原创文章还是转载文章,通过增加自定义栏目custom来区别。在Wordpress的文档中找到了获得自定义栏目内容的函数get_post_custom(),利用这个函数来实现原创文章与转载文章显示不同的版权信息。

WordPress原创文章与转载文章显示不同的版权信息的方法:

1.在模板文件single.php中加入下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php $custom_fields get_post_custom_keys$post_id
in_array 'copyright' $custom_fields ?>
<div class="postcopyright">
<strong>【声明】</strong>本文为倡萌原创编译,转载请注明出自<a href="<?php the_permalink ?>" title=<?php the_title ?>><strong>倡萌的自留地hcm602.cn</strong></a>
<br/>
并保留本文有效链接:<a href="<?php the_permalink?>" title=<?php the_title ?>><?php the_title ?></a> , 转载请保留本声明!
</div>
<?php ?>
<?php $custom get_post_custom$post_id
$custom_value $custom'copyright' ?>
<div class="postcopyright">
<strong>【说明】</strong> 本文参考自:<a target="_blank" rel="nofollow" href="<?php $custom_value ?>" ><?php $custom_value ?></a> , 由倡萌(<a href="http://www.cmhello.com">hcm602.cn</a>)整理编辑.
<br/>
本文链接地址:<a href="<?php the_permalink?>" title=<?php the_title ?>><?php the_title ?></a> , 转载请保留本说明!
</div>
<?php endif ?>

注意:修改代码中的信息为你自己的。如果想要转载文章不出现任何版权信息的话只要把else之后的代码去掉即可。

2.在发表你转载的文章的时候,添加自定义字段(栏目),名称为copyright,字段值可以设置为转载文章的原链接即可,效果就如本文下面的【说明】所示。

注意:原创文章不需要添加自定义字段(栏目)。

附:如果需要向倡萌的自留地一样实现灰色的背景框样式,可以在主题的CSS里面添加下面的代码即可:

1
2
3
4
5
6
7
.postcopyright
background#ecebeb
font-size
displayblock
padding
margin-top

我的实现方案是根据是否有evernote 的来源URL来判定是原创还是转载(对sentinote 插件进行了更新)

(Twenty Ten主题修改: loop-single.php、loop.php),加在<div class="entry-content">之前

<?php
     $custom_fields = get_post_custom_keys();
     if (!in_array ('en_sourceURL', $custom_fields)) : ?>

     <div class="postcopyright">
          <strong>【声明】</strong>本文为AdamsLee原创,转载请注明出自<a href="<?php the_permalink() ?>" title=<?php the_title(); ?>><strong>围炉网</strong></a>并保留本文有效链接:<a href="<?php the_permalink()?>" title=<?php the_title(); ?>><?php the_title(); ?></a>, 转载请保留本声明!
     </div>
<?php else: ?>
     <?php  $custom = get_post_custom();
     $custom_value = $custom['en_sourceURL']; ?>
     <div class="postcopyright">
     <strong>【说明】</strong> 本文转载自:<a target="_blank" rel="nofollow" href="<?php echo $custom_value[0] ?>" ><?php echo $custom_value[0] ?></a>
     </div>
<?php endif; ?>

此条目发表在未分类分类目录,贴了标签。将固定链接加入收藏夹。