首页 > 网事如风 > 为WordPress增加“转载自”字段
2012
10-22

为WordPress增加“转载自”字段

网上找到的方法,我一用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’);
//"转载自"定义结束
觉得文章有用,微信打赏一元。