[WordPress]カスタムフィールドを使ってアフィリエイトリンクを特定の投稿ページに表示させる方法

特定の投稿ページ(single.php)の記事下に、カスタムフィールドを使って、アフィリエイトのタグを貼る方法です。
アフィリエイトタグがない場合は、アドセンスのバナーを出力させます。

例として、いま見ていただいてるこのページの記事の下には、WordPress 3.x (速習デザイン) という本のamazonリンクが表示させてあります。

投稿画面のカスタムフィールド登録

↓ 任意の名前と、アフィリタグを記入
wp-affi-link

アマゾンのタグ取得は、シンプルな画像とテキストだけで取得できるのでamazletを使っている。

投稿ページにコード追加

当ブログで採用中のテーマTwentyTwelveだと、single.phpが読み込んでいるcontent.php内で、記事本文を出力しているので、content.php内に、コードを追記します。

content.php

<div class="entry-content">
<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>

〜〜ここに以下コード追記〜〜

<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->

追記するコード

<?php if ( is_single() ) : ?>
<?php if(get_post_meta($post->ID, 'amazon', true)){ ?>
<div class="foot-ad">
<?php echo get_post_meta($post->ID, 'amazon', true); ?>
</div>
<?php }else{ ?>
<div class="foot-ad">
〜〜googleアドセンスのタグ〜〜
</div>
<?php } ?>
<?php endif; // is_single() ?>

content.phpは、投稿ページ以外に、インデックスページやアーカイブページにも内容出力するので、is_single()で投稿ページのみ、出力されるようにします。
get_post_meta($post->ID, ‘amazon’, true) で、カスタムフィールド名amazonの内容が出力されます。

これで、カスタムフィールドamazonが登録された記事では、amazonアフィリタグ、その登録がないときは、アドセンスバナーが表示されます。

スポンサーリンク

シェアする

フォローして更新を受け取る

スポンサーリンク