web-dev-qa-db-ja.com

カスタムテーブルを使用してワードプレスのページからMySQLクエリ

私はページのタイトルに一致するMySQLクエリをしたいです。このタスクを達成するためのより良い方法はわかりませんが、私は動けなくなります。

これが私の基本的なテストコードです。

<?php
$page_title = wp_title('');
echo $page_title;
$test = $wpdb->get_results("SELECT * FROM $wpdb->park_data WHERE park_name = '"$page_title"' ") or die(mysql_error());  
$row = mysql_fetch_array($test);
echo $row['park_name'];
?>

クエリでエラーが発生し続けます。 wp_title( '');をエコーし​​ても問題ありません。

誰かが私が間違っていることを見ることができますか?

1
mrlayance

クエリのphp変数の前後にピリオドを2、3追加して、mysql_fetch_arrayの使用を削除し、get_row()を使用すると、うまく機能するはずです。カスタムテーブルから公園を取得する方法は次のとおりです。

<?php
$page_title = wp_title('');
$park = $wpdb->get_row("SELECT * FROM $wpdb->park_data WHERE park_name='".$page_title."'");  
if($park)
{
   print_r($park); // because other than it being an object, I'm not exactly sure what's returned.
}
?>

また、mysqlクエリは、wp_title()がDBに格納されているpark_nameとまったく同じ形式のページタイトルを返すと想定していることに注意してください。あなたはそれをあなたのテーブルデータと一致させるためにwp_title()をフォーマットする必要があるかもしれません。

1つのパークが返されるように見えるので、代わりにget_row()を使用しました。 http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row

1
Ben HartLenn