1249480356 【やりたいこと】

Wordpressのタイトルをキーワードとして自動的にwikipediaの情報を表示する。

【試してみたこと】
SimpleAPI wikipedia
http://wikipedia.simpleapi.net/

SimpleAPi wikipediaというサービスを利用して表示を試みました。
提供のサンプル(PHP)をwordpressのテンプレートファイルに追加したところWarnigエラーが出てしまいました。

【質問】
どのように設定すれば、実現可能でしょうか?

キーワードのところに<?php the_title(); ?>を入れたいです。

----------------------------------------------
<?php

// キーワード指定
$keyword = "キーワード";

// APIのURL
$url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php";

// データを取得
$data = file_get_contents($url) ;

// PHPシリアライズパーサーを利用して解析し、配列に入れる
$array = unserialize($data);

// 配列をforeachで表示するデモ
print "Wikipedia情報<br />";
foreach ($array as $key => $value) {
print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>".$value[body] ."<hr/>\n\n";
}
?>

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/08/12 22:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント27pt

「the_title()」の代わりに「get_the_title()」を使用します。

テンプレートの表示したい箇所に以下の記述を貼り付けてみて

ください。(※記事表示のループ内)

<?php

// キーワード指定

$keyword = get_the_title();

// APIのURL

$url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php";

// データを取得

$data = file_get_contents($url) ;

// PHPシリアライズパーサーを利用して解析し、配列に入れる

$array = unserialize($data);

// 配列をforeachで表示するデモ

if($array){

print "<h4>Wikipedia情報</h4>";

foreach ($array as $key => $value) {

print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br />". $value[body] ."<hr />\n\n";

}

print '(by <a href="http://www.simpleapi.net">SimpleAPI</a>:<a href="http://wikipedia.simpleapi.net">WikipediaAPI</a>)';

}

?>


※タイトル名の項目がないとエラーが表示されますので、情報表示部分を「if($array){~}」で囲んでいます。


あるいは、情報表示部分を囲まずに次のようにしても良いと思います。

print "<h4>Wikipedia情報</h4>";

if($array){

foreach ($array as $key => $value) {

print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br />". $value[body] ."<hr />\n\n";

}

}else{

print "<p>このタイトルの項目はありません。</p>\n";

}

print '(by <a href="http://www.simpleapi.net">SimpleAPI</a>:<a href="http://wikipedia.simpleapi.net">WikipediaAPI</a>)';

※テンプレートファイルの文字コードがUTF-8でない場合、日本語が文字化けします。

エンコードをUTF-8に変更するか、「Poedit」を使うなどして、使用したい単語または文章が追加された言語ファイルを作成する必要があります。

Poedit

http://www.poedit.net/

使い方は以下が参考になると思います。

http://www.koikikukan.com/archives/2007/03/29-032523.php


※フォローが必要な場合は、コメント欄を開けて置くとやり取りしやすいです。

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント27pt

WorkPress および PHP で使用している文字コードは何?

UTF-8 以外がカラムなら変換処理が必要になるはず。


Warnigエラーが出てしまいました。

エラー内容を提示してください。


で、結局そのページはどうなったのですか?肝心の問題点が記述されていないんですが。

id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント26pt

後から画像に気がつきました。

文字が小さすぎてさっぱり分かりませんのでコメント欄にでも転記していただきたいのですが最大の問題点を一つ。

$keyword = the_title();

でないと動くはずもありません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません