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 代码实现文章标题栏自动添加原创标识

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章