
ワードプレスの投稿記事(本文)から、単語を抽出してAmazonへのリンクを生成するコードになります。
アフェリエイトタグは、ご自身のタグに書き換えてください。下記コードはsingle.phpなどに貼り付けてください。
<?php // 本文からキーワードを抽出する関数 function extract_keywords($content, $num_keywords = 3) { $content = strip_tags($content); // 文章を単語ごとに分割(日本語対応) preg_match_all('/\p{Han}{2,}|\p{Hiragana}{2,}|\p{Katakana}{2,}|[a-zA-Z0-9]{2,}/u', $content, $words); $words = array_filter($words[0], function($word) { return mb_strlen($word, 'UTF-8') > 1; // 2文字以上の単語を抽出 }); // フィルタリングする一般的な助詞や接続詞のリスト $stopwords = ['こと', 'の', 'が', 'に', 'を', 'は', 'と', 'で', 'へ', 'や', 'も', 'な', 'だ', 'です', 'ます', 'する', 'いる', 'ある', 'てる', 'た', 'です', 'いい', 'ない']; // フィルタリング $filtered_words = array_filter($words, function($word) use ($stopwords) { return !in_array($word, $stopwords); }); // 頻出する一般名詞のみを抽出 $noun_stopwords = ['の', 'が', 'を', 'に', 'は', 'と', 'で', 'や', 'も']; $filtered_words = array_filter($filtered_words, function($word) use ($noun_stopwords) { return !in_array($word, $noun_stopwords); }); $word_count = array_count_values($filtered_words); arsort($word_count); return array_slice(array_keys($word_count), 0, $num_keywords); } // キーワードを使ってAmazon検索リンクを生成する関数 function create_amazon_link($keyword, $affiliate_tag) { $base_url = "https://www.amazon.co.jp/s?k="; $query = urlencode($keyword); return $base_url . $query . "&tag=" . $affiliate_tag; } // ワードプレスの本文 $post_content = get_the_content(); $keywords = extract_keywords($post_content, 3); // 抽出するキーワードの数を3に設定 $affiliate_tag = "あなたのアフィリエイトタグ"; // あなたのアフィリエイトタグに置き換えてください // 各キーワードに対してAmazonリンク付きのボタンを生成 foreach ($keywords as $keyword) { $amazon_link = create_amazon_link($keyword, $affiliate_tag); echo '<a href="' . $amazon_link . '">' . htmlspecialchars($keyword, ENT_QUOTES, 'UTF-8') . '</a>'; } ?>
上記のコードでは、一般的な助詞や接続詞を除外した上で、より自然な単語を抽出しています。さらに、2文字以上の単語のみを抽出することで、より適切なキーワードを得ることができます。これで日本語のキーワードがより自然に抽出されるはずですが、まだ日本語として不自然な抽出もされてしまいます。
自然な単語抽出を実現するために、日本語形態素解析ライブラリ「MeCab」を使用してキーワードを抽出する方法もあります。
<?php // MeCabを使用してキーワードを抽出する関数 function extract_keywords($content, $num_keywords = 3) { $content = strip_tags($content); // MeCabを初期化 $mecab = new MeCab_Tagger(); $nodes = $mecab->parseToNode($content); $words = []; foreach ($nodes as $node) { $features = explode(',', $node->getFeature()); if (count($features) > 0 && ($features[0] == '名詞')) { $words[] = $node->getSurface(); } } // フィルタリングする一般的な助詞や接続詞のリスト $stopwords = ['こと', 'の', 'が', 'に', 'を', 'は', 'と', 'で', 'へ', 'や', 'も', 'な', 'だ', 'です', 'ます', 'する', 'いる', 'ある', 'なる']; // フィルタリング $filtered_words = array_filter($words, function($word) use ($stopwords) { return !in_array($word, $stopwords) && mb_strlen($word, 'UTF-8') > 1; // 2文字以上の単語を抽出 }); $word_count = array_count_values($filtered_words); arsort($word_count); return array_slice(array_keys($word_count), 0, $num_keywords); } // キーワードを使ってAmazon検索リンクを生成する関数 function create_amazon_link($keyword, $affiliate_tag) { $base_url = "https://www.amazon.co.jp/s?k="; $query = urlencode($keyword); return $base_url . $query . "&tag=" . $affiliate_tag; } // ワードプレスの本文 $post_content = get_the_content(); $keywords = extract_keywords($post_content, 3); // 抽出するキーワードの数を3に設定 $affiliate_tag = "あなたのアフィリエイトタグ"; // あなたのアフィリエイトタグに置き換えてください // 各キーワードに対してAmazonリンク付きのボタンを生成 foreach ($keywords as $keyword) { $amazon_link = create_amazon_link($keyword, $affiliate_tag); echo '<a href="' . $amazon_link . '">' . htmlspecialchars($keyword, ENT_QUOTES, 'UTF-8') . '</a>'; } ?>
サーバーにMeCabがインストールされている場合、このコードを使用できます。
MeCubがサーバーにインストールされていない場合は、Yahoo Japanの日本語形態素解析APIなどを利用する方法もあります。
こちらの場合は利用制限があるので、MeCubをインストール可能であればそちらを利用ください。
Yahoo JapanのAPIを使用して形態素解析を行いたコード
<?php // Yahoo Japan APIのアプリケーションID $app_id = 'YOUR_APP_ID'; // あなたのアプリケーションIDに置き換えてください // 日本語形態素解析APIを使用してキーワードを抽出する関数 function extract_keywords($content, $num_keywords = 3, $app_id) { $content = strip_tags($content); $url = 'https://jlp.yahooapis.jp/KeyphraseService/V1/extract'; $params = [ 'appid' => $app_id, 'sentence' => $content, 'output' => 'json' ]; $query = http_build_query($params); $response = file_get_contents("{$url}?{$query}"); $result = json_decode($response, true); if (!$result) { return []; } // キーワードをスコアでソート arsort($result); $keywords = array_slice(array_keys($result), 0, $num_keywords); return $keywords; } // キーワードを使ってAmazon検索リンクを生成する関数 function create_amazon_link($keyword, $affiliate_tag) { $base_url = "https://www.amazon.co.jp/s?k="; $query = urlencode($keyword); return $base_url . $query . "&tag=" . $affiliate_tag; } // ワードプレスの本文 $post_content = get_the_content(); $keywords = extract_keywords($post_content, 3, $app_id); // 抽出するキーワードの数を3に設定 $affiliate_tag = "あなたのアフィリエイトタグ"; // あなたのアフィリエイトタグに置き換えてください // 各キーワードに対してAmazonリンク付きのボタンを生成 foreach ($keywords as $keyword) { $amazon_link = create_amazon_link($keyword, $affiliate_tag); echo '<a href="' . $amazon_link . '">' . htmlspecialchars($keyword, ENT_QUOTES, 'UTF-8') . '</a>'; } ?>
利用前にバックアップ等をしてくださいね。
- PR -
ニッチなテーマのイラスト素材投稿始めました。良かったら使ってください。
RU DESIGN/無料イラスト・フリー素材「イラストAC」
オリジナル絵本 Kindleにて出版
ナマケモノのふにゃまるちゃん
■困ったことがあったら安く依頼ができます(RU DESIGNとしても出品中です)

■格安レンタルサーバー

■ドメイン取得は同じところで取得しておくと便利ですよ。
応援・支援よろしくお願いいたします。サイト運営に使わせていただきます。 Braveクリエイターサポート
ニッチなテーマのイラスト素材投稿始めました。良かったら使ってください。
RU DESIGN/無料イラスト・フリー素材「イラストAC」
オリジナル絵本 Kindleにて出版
ナマケモノのふにゃまるちゃん
■困ったことがあったら安く依頼ができます(RU DESIGNとしても出品中です)

■格安レンタルサーバー

■ドメイン取得は同じところで取得しておくと便利ですよ。

応援・支援よろしくお願いいたします。サイト運営に使わせていただきます。 Braveクリエイターサポート
関連記事
2025/03/12
WordPressサイトで、日本語以外のコメントに困っていませんか? スパムコメントや、内容のわからない外国語コメントは、サイトの管理を煩雑にするだけでなく、ユ...
2025/02/28
WordPressのダッシュボードを、もっと効率よく使いたいと思いませんか?この記事では、カスタムフィールドを利用して投稿を分類し、それをダッシュボードのメニュ...
2025/02/17
WordPressは非常に人気のあるウェブサイト作成ツールですが、初めて使う方にとっては、エラーが発生した際の対処方法が難しく感じられることがあります。この記事...
2025/02/16
SEO(検索エンジン最適化)は、ウェブサイトの成功に欠かせない要素です。特にWordPressユーザーにとって、効果的なSEOプラグインの選択は重要です。この記...
2025/02/14
Bootstrap 5は、ウェブデザインを迅速かつ効率的に行うための人気のフレームワークです。その中でもドロップダウンメニューは、コンテンツを整理し、ユーザーイ...