結局DB置換でAmazonアフィリエイトリンクを一気に置き換えたメモ

結局DB置換でAmazonアフィリエイトリンクを一気に置き換えたメモ

一つ前の記事

当初は一気に書き換えられるツールを探したけれど、掲載商品自体が消えていたりするため結局全部手動で書き換えてます。

なんて書きましたが、全然終わらん
というわけでタイムリミットもあるし、確実性を捨ててまずは一気に移行することにしました。

Database Search and Replace Script in PHP

DB内のAmazonリンクを一気に書き換えるべく、今回も「Database Search and Replace Script in PHP」を使いました。

使い方はこちらに少し書き残してあります。

これを使ってこれまでのAmazonアフィリエイトリンクを書き換えます。

リンクタイプごとに置換する

Amazon Associates Link Builder

一番使っていたのがこのツールで貼ったショートコード。
乗り換え先のWPアソシエイトポストR2

[wpap service="amazon" type="detail" id="XXXXXXXXXX" title="YYYYYY"]

というショートコードを生成します。
なので既存のAssociates Link Builderから商品コードXXXXXXXXXのみを残し、前後の文字列を書き換えます。

手順としては前半の以下のコード

[amazon_link asins='

を下記へ置換。

[wpap service="amazon" type="detail" id="

心配なので何度もdry runしながら漏れや数の相違が無いかチェックしました。
後半のコードはlink_idが個別に生成されていたため”use regex”にチェックを点けて

' template='.*' store='.*' marketplace='.*' link_id='.*']

"]

に置換して完了。
手作業と異なりtitle=が生成できないけれど、確認した限りはプラグインの動作に問題はなさそうです。
(実際レポートが上がってこないと確かなことは言えないけれど)

G-Tools

4年前以上の古い記事は、Associates Link Builderに移行せず古いG-Tools作成のリンクそのままになっていました。
ただその古い記事からも5%のアクセス流入があるというのは前に書いたとおり。

G-Toolsはショートコードではなく、CSSとTableタグを用いたHTMLで書かれているため簡単に置換できそうではありません。

悩んだ末・・・Amazonへのリンクを片っ端からWPアソシエイトポストR2が吐き出すものと同じリンク形式へ書き替える事にしました。
たぶん悪手です。

何をもってPA-API 5.0か4.0かを判断するのかわかりませんが、商品検索のメソッドは必要ないためとりあえずこれで行きます。
だめなら5%の流入が減るけど、全部書き換えてられないんだから仕方ない。

以下のようなHTMLを

<td valign="top"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B006LW0W5Y/cargobird-22/" target="_top"><img src="http://ecx.images-amazon.com/images/I/51zlaqJ22dL._SL160_.jpg" alt="Amazonベーシック 16ゲージ スピーカーケーブル 約30メートル" border="0" /></a></td>
<td valign="top"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B006LW0W5Y/cargobird-22/" target="_top">Amazonベーシック 16ゲージ スピーカーケーブル 約30メートル</a>AmazonBasics 2013-10-01
売り上げランキング : 207<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B006LW0W5Y/cargobird-22/" target="_top">Amazonで詳しく見る</a> by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></td>
</tr>
以下へ書き換える形です。
<table border="0" width="450" cellpadding="5">
<tbody>
<tr>
<td valign="top"><a href="https://www.amazon.co.jp/dp/B006LW0W5Y?tag=cargobird-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_top"><img src="http://ecx.images-amazon.com/images/I/51zlaqJ22dL._SL160_.jpg" alt="Amazonベーシック 16ゲージ スピーカーケーブル 約30メートル" border="0" /></a></td>
<td valign="top"><a href="https://www.amazon.co.jp/dp/B006LW0W5Y?tag=cargobird-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_top">Amazonベーシック 16ゲージ スピーカーケーブル 約30メートル</a>AmazonBasics 2013-10-01
売り上げランキング : 207<a href="https://www.amazon.co.jp/dp/B006LW0W5Y?tag=cargobird-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_top">Amazonで詳しく見る</a> by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></td>
</tr>
</tbody>
</table>
置換の操作は、前半の下記文字列
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/

を下記へ置換しました。

<a href="https://www.amazon.co.jp/dp/

後半は

/cargobird-22/" target="

を下記に置換します。

?tag=cargobird-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="

Amazlet

G-Toolsより更に昔。12年前(!)から使用していたリンク作成サービスの名残です。
もう古すぎてCSSも引き継いでないけれど、リンクだけ直しておきます。

前半の置換はG-Toolsの部分と一緒なので実施済。

後半は

/cargobird-22/ref=nosim/" target="_blank" name="amazletlink">

を下記へ置換しました。

?tag=cargobird-22&amp;linkCode=ogi&amp;th=1&amp;psc=1" target="_top">

めちゃ楽に終わりました

きっとというか間違いなく正しいやり方ではないけれど、妥協、折衷案、暫定措置。
そんなところです。

今の所各時代の記事をチェックする限り、大きな問題は見当たりません。
WPアソシエイトポストR2は商品リンクが見つからない場合は何も表示しないため、記載に気づいてないだけかもね。

それならそれでクリック自体起きないわけだからまあいいか。

自己メモ:WPアソシエイトポストカスタマイズ

テーマフォルダ/wpap-custom.css

大体345行目より下の「/* 標準【デザイン共通】*/」以下を変更。

.wpap-priceのフォントサイズ拡大。
.wpap-dateのmargin追加。
各エレメントの余白調整。

wp-associate-post-r2/templates/single-detail.php

<?php if ( ! defined( 'WPAP_ENABLED' ) ) { exit; } ?>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-<?php echo $item['Service']; ?><?php if ( '' !== $item['Class'] ) { echo ' ' . $item['Class']; } ?>">
	<a href="<?php echo $item['URL']; ?>" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="<?php echo $item['ServiceName'] . ' ' . $item['ID'] . ' ' . $item['Title']; ?>">
		<div class="wpap-image"><img src="<?php echo $item['Image']; ?>" alt="<?php echo $item['Title']; ?>" /></div>
		<div class="wpap-title"><?php echo $item['Title']; ?>
		<?php if ( isset( $item['Author'] ) ) : ?><div class="wpap-creator"><?php echo implode( self::GLUE_STRING, $item['Author'] ); ?></div><?php endif; ?>
		<?php if ( isset( $item['Artist'] ) ) : ?><div class="wpap-creator"><?php echo implode( self::GLUE_STRING, $item['Artist'] ); ?></div><?php endif; ?>
		<?php if ( isset( $item['Price'] ) ) : ?>
				<p class="wpap-price"><?php echo $item['Price']; ?>
				<span class="wpap-date"><?php printf( __( '(as of %s)', 'wp-associate-post-r2' ), $item['Date'] ); ?></span>
				</p>
		</div>
		<?php endif; ?>
		<?php if ( isset( $item['Release'] ) ) : ?>
			<div class="wpap-release"><?php printf( __( 'Release date: %s', 'wp-associate-post-r2' ), $item['Release'] ); ?></div>
		<?php endif; ?>
<!--
<div class="wpap-service"><?php echo $item['ServiceName']; ?></div>
<div class="wpap-service"><i class="fab fa-amazon fa-3x amazon-logo"></i><
/div>
-->
<div class="wpap-service"><img src="http://dolls.tokyo/wp-content/uploads
/2020/11/Amazon-logo-RGB_small.png" width="100%"></i></div>
	</a>
</div>

wpap-serviceクラスはテキスト表示をやめ、Font Awesome 5のAmazonロゴへ張替え。
header.phpのheadにhttps://kit.fontawesome.com/のロードを追加。
wpap-custom.cssへamazon-logoクラス追加。

→Fontawesomeはロードが遅くなるため廃止。
小さなAmazonロゴをアップロードし、そちらへ差し替え。

wpap-priceをどうしても画像横に配置したかったのでdiv→pへ。wpap-titleをp→divへ。

コメントを残す