私はページのタイトルに一致する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( '');をエコーしても問題ありません。
誰かが私が間違っていることを見ることができますか?
クエリの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