人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【やりたいこと】
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";
}
?>


1249480356
●拡大する

●質問者: m_next_ie
●カテゴリ:インターネット ウェブ制作
✍キーワード:API AS BODY Key keyword
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● rouge_2008
●27ポイント

「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


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


2 ● b-wind
●27ポイント

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

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


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

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


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


3 ● b-wind
●26ポイント

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

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

$keyword = the_title();

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ