网上找到的方法,我一用WP就崩溃~~待研究原因。
想要实现“转载自”还要自己添加自定义域,还要折腾。现在我把我实现转载自的代码帖出来。想实现这个功能可以直接复制这个。
这个代码根据主题不同添加位置可能并不完全一样,如果没成功可以试试其他位置。
一,添加“转载自”的自定义域
在主题的single.php里面找到:
<div id="post-<?php the_ID(); ?>">
在这行代码后面添加
//“转载自”定义变量开始
<?php $authorship = get_post_meta($post->ID, ‘authorship_value’, true); ?><?php $authorshiplink = get_post_meta($post->ID, ‘authorshiplink_value’, true); ?>
//“转载自”定义变量结束
上面的代码定义两个名称分别为authorship_value和authorshiplink_value的自定义域。把下面的代码:
//“转载自”定义变量文件位置开始
<?php if ( get_post_meta($post->ID, 'authorship_value', true) ) { ?>转载自:<a title="原作者" href="<?phpecho $authorshiplink; ?> "target="_blank"><?php echo $authorship;}?></a>
//“转载自”定义变量文件位置结束
放到single.php杂项的适当位置(作者,分类等内容的旁边),这样single.php里面就弄完了。使用的时候可以在后台自定义栏目内添加authorship_value的值实现原作者,添加authorshiplink_value的值实现源链接。
二,为自定义域添加后台面板
把下列代码直接放到functions.php里面就好了。
//"转载自"定义开始
$new_meta_boxes = array(
“authorship” => array(
“name” => “authorship”,
“std” => “”,
“title” => “原作者:”),
“authorshiplink” => array(
“name” => “authorshiplink”,
“std” => “”,
“title” => “源地址:”)
);
function new_meta_boxes() {
global $post, $new_meta_boxes;
foreach($new_meta_boxes as $meta_box) {
$meta_box_value = get_post_meta($post->ID, $meta_box['name'].’_value’, true);
if($meta_box_value == “”)
$meta_box_value = $meta_box['std'];
echo’<input type=“hidden” name=“‘.$meta_box['name'].’_noncename” id=“‘.$meta_box['name'].’_noncename”value=“‘.wp_create_nonce( plugin_basename(__FILE__) ).’” />‘;
// 自定义字段标题
echo’<h4>‘.$meta_box['title'].’</h4>‘;
// 自定义字段输入框
echo ‘<textarea cols=“60″ rows=“3″ name=“‘.$meta_box['name'].’_value”>‘.$meta_box_value.’</textarea><br/>‘;
}
}
function create_meta_box() {
global $theme_name;
if ( function_exists(‘add_meta_box’) ) {
add_meta_box( ‘new-meta-boxes’, ‘本文自定义模块’, ‘new_meta_boxes’, ‘post’, ‘normal’, ‘high’ );
}
}
function save_postdata( $post_id ) {
global $post, $new_meta_boxes;
foreach($new_meta_boxes as $meta_box) {
if ( !wp_verify_nonce( $_POST[$meta_box['name'].’_noncename’], plugin_basename(__FILE__) )) {
return $post_id;
}
if ( ‘page’ == $_POST['post_type'] ) {
if ( !current_user_can( ‘edit_page’, $post_id ))
return $post_id;
}
else {
if ( !current_user_can( ‘edit_post’, $post_id ))
return $post_id;
}
$data = $_POST[$meta_box['name'].’_value’];
if(get_post_meta($post_id, $meta_box['name'].’_value’) == “”)
add_post_meta($post_id, $meta_box['name'].’_value’, $data, true);
elseif($data != get_post_meta($post_id, $meta_box['name'].’_value’, true))
update_post_meta($post_id, $meta_box['name'].’_value’, $data);
elseif($data == “”)
delete_post_meta($post_id, $meta_box['name'].’_value’, get_post_meta($post_id, $meta_box['name'].’_value’, true));
}
}
add_action(‘admin_menu’, ‘create_meta_box’); add_action(‘save_post’, ‘save_postdata’); //"转载自"定义结束
- 本文固定链接: https://www.fengshen.cn/2012/10/为wordpress增加转载自字段/
- 转载请注明: fengshen 发表于 一梦风神
