2016.05.25

【コーディング効率化術】WordPressでおすすめワザ①

d02914aaa63d35dc765cb9fc1d30bb17_s

【コーディング効率化術】WordPressでよく使うワザ

どーも、塩味です。
皆様この梅雨のじめじめをいかがお過ごしでしょうか??
例年気分も乗らず、お腹が若干弱めの僕にとってこの時期は天敵なのですが、
最近パーマに目覚めこの湿気がいい感じにしてくれているような気がして少し梅雨が好きになりました。。笑
前置きはこんな感じで、今日は前回に引き続きWPのコーディングの効率化をご紹介したいと思います。



前回はプラグインについてご説明したと思いますが、今回は最近知ったちょっとしたこととして
「投稿した記事に好きなリンクをつける方法」をご説明します。
これが出来ると、記事ごとに外部リンクで飛ばすことも簡単に出来ます。



《準備》
①Custom Field Suiteのダウンロード
こちらは以前ご紹介したプラグインの一つですね!
簡単に説明すると管理画面上の記入欄に新しく記入エリアを作成し、記入したものをはきだしたり、振り分けたりするプラグインです。
こちらでリンクにするURLの入力エリアを作成します。



②function.phpにコードを記載


//リンクアドレス追加のカスタムフィールド作成
add_action('admin_menu', 'add_linkurl');
add_action('save_post', 'save_linkurl');

function add_linkurl(){
     if(function_exists('add_linkurl')){
          add_meta_box('linkurl1', 'リンク先URL', 'insert_linkurl', 'post', 'normal', 'high');
     }
}

function insert_linkurl(){
     global $post;
     wp_nonce_field(wp_create_nonce(__FILE__), 'my_nonce');
     echo '<label class="hidden" for="linkurl">リンク先URL</label>
  <input type="text" name="linkurl" size="60" value="'.esc_html(get_post_meta
($post->ID, 'linkurl', true)).'" />';
     echo '<p>リンクしたいURLを入力します。</p>';
}

function save_linkurl($post_id){
     $my_nonce = isset($_POST['my_nonce']) ? $_POST['my_nonce'] : null;
     if(!wp_verify_nonce($my_nonce, wp_create_nonce(__FILE__))) {
          return $post_id;
     }
     if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; }
     if(!current_user_can('edit_post', $post_id)) { return $post_id; }

     $data = $_POST['linkurl'];

     if(get_post_meta($post_id, 'linkurl') == ""){
          add_post_meta($post_id, 'linkurl', $data, true);
     }elseif($data != get_post_meta($post_id, 'linkurl', true)){
          update_post_meta($post_id, 'linkurl', $data);
     }elseif($data == ""){
          delete_post_meta($post_id, 'linkurl', get_post_meta($post_id, 'linkurl', true));
     }
} 



このコードを入れると自動的に投稿記事の中にURL入力エリアが出てきます。




③投稿記事一覧(category.php)のリンク部分を下記に変更


<?php //リンク設定の有無で切り分け
$linknourl = get_post_meta( $post->ID, 'linkurl', true );
if ( !empty( $linknourl ) ) : ?>
<?php
//htmlを除去
$linknourl = htmlspecialchars($linknourl,ENT_QUOTES,'UTF-8');
?>
<a href="" target="_blank">
<?php else : ?>
<a href="" >
<?php endif; ?>
<?php the_title(); ?>
<!-- /リンク設定の有無で切り分け -->


PHPで出しわけをしているわけです。



④投稿エリアにURLを設置すれば完了!



以外に簡単に設置が出来ますね!
次回も組み込み関係のネタを更新していきますので乞うご期待!!

ではでは。。

関連記事