程序员的世界

WordPress 代码实现文章自动添加原创或转载版权声明

代码修改

以下功能在WordPress 最新版本:4.9.2上测试通过。

以下代码修改可以直接通过FTP修改文件,也可以通过后台中“外观->编辑”功能直接修改。

PHP函数

此段代码放在主题目录下的 functions.php 文件中

/**
 * 发布文章/页面时自动添加默认的自定义字段
 * copyright_type 0 不添加任何声明,1 原创,2 转载,3 翻译
 * copyright_reprint_title 转载或翻译的原文标题
 * copyright_reprint_url 转载或翻译的原文链接
 */
function add_copyright_field($post_ID) {
    global $wpdb;
    if(!wp_is_post_revision($post_ID)) {
                // 默认启用“原创”版权声明
        add_post_meta($post_ID, 'copyright_type', '1', true);
        add_post_meta($post_ID, 'copyright_reprint_title', '', true);
        add_post_meta($post_ID, 'copyright_reprint_url', '', true);
    }
}
// 发布页面时启用版权声明
add_filter('publish_page', 'add_copyright_field');
// 发布文章时启用版权声明
add_filter('publish_post', 'add_copyright_field');

/**
 * 发布文章/页面时自动添加版权声明文本
 */
function my_copyright($outer) {
    if(!is_singular()){ return $outer; }

    global $post;
        // 文章或页面属性
    $post_id = $post->ID;
    $post_title = $post->post_title;
    $post_url = get_permalink($post_id);
        // 转载或翻译的文章属性
    $copy_type = get_post_meta($post_id, 'copyright_type', true);
    $copy_title = get_post_meta($post_id, 'copyright_reprint_title', true);
    $copy_url = get_post_meta($post_id, 'copyright_reprint_url', true);
    $copy_text = $copy_title ? $copy_title : $copy_url;
    if(!$copy_type || $copy_type == '0'){ return $outer; }

        // 样式名称 .copyright-text
    $outer .= '<div class="copyright-text">';
        // 声明文本,可自行修改
    if($copy_type == '1'){	
        $outer .= '<p>';
        $outer .= '原创文章,转载请注明:转载自<a href="'. get_settings('home') .'" rel="bookmark">'. get_bloginfo('name') .'</a>';
        $outer .= ' 本文链接地址:<a href="'. $post_url .'" rel="bookmark">'. $post_title .'</a>';
        $outer .= '</p>';
    }else if($copy_type == '2'){
        $outer .= '<p>转载自:<a href="'. $copy_url .'" target="blank" rel="nofllow">'. $copy_text.'</a></p>';
    }else if($copy_type == '3'){
        $outer .= '<p>翻译自:<a href="'. $copy_url .'" target="blank" rel="nofllow">'. $copy_text.'</a></p>';
    }
    $outer .= '</div>';
    return $outer;
}
// 最后的参数“9”表示函数执行顺序,因为我使用了“相关文章”插件,该插件执行顺序为“10”。
// 如果需要把版权声明文本模块写在“相关文章”之前,必须修改执行顺序小于10。
add_filter('the_content', 'my_copyright', 9);

CSS样式

此段代码放在主题目录下的 style.css 文件中

.copyright-text {
    width: 100%;
    height: auto;
    background-color: #f2f2f2;
    box-shadow: 0 0 5px #EEE;
    font-family: 'comic sans ms', fantasy !important;
    margin: 20px auto;
    padding: 10px;
    border-radius: 9px;
    border-collapse: collapse;
    text-align: left;
}

.copyright-text p {
    padding: 0px;
    margin: 0px;
}

使用方法

编辑文章或页面时,在WordPress编辑器的自定义栏目中,使用上面PHP代码添加的 copyright_type copyright_reprint_title copyright_reprint_url 参数,具体参数含义参见PHP代码注释。

如果是原创文章,可以不用填写,文章保存时会自动设置copyright_type字段值为“1”,即原创,copyright_reprint_title copyright_reprint_url字段值为空。

《WordPress 代码实现文章自动添加原创或转载版权声明》

效果展示

效果图中的“相关文章”模块使用插件实现,参见:WordPress 必备插件推荐及使用说明

文章标题栏的“原创”标识使用代码实现,参见:WordPress 代码实现文章标题栏自动添加原创标识

《WordPress 代码实现文章自动添加原创或转载版权声明》《WordPress 代码实现文章自动添加原创或转载版权声明》《WordPress 代码实现文章自动添加原创或转载版权声明》

相关文章

点赞
  1. Sannywrart说道:

    Make a more new posts please :)
    ___
    Sanny

  2. wjtree说道:

    you can try Wordfence Security, the website is https://wordpress.org/plugins/wordfence/

  3. plastik cor说道:

    Hello! Do you know if they make any plugins to protect against hackers?
    I'm kinda paranoid about losing everything I've worked hard on. Any suggestions?

  4. Ιf you want to get much frokm this parаgraph then you haᴠe to аpply such techniques to yoіг won weƅ
    site.

发表评论

电子邮件地址不会被公开。