私は現在、クライアント向けのWordpressサイトに取り組んでいます。このクライアントには、サイトのコンテンツを管理する多くの人がいます。そうは言っても、メインメニューを自動入力し、サブメニュー(ドロップダウン)に自動入力する子ページのレベルを1つだけにしたいのです。
MySQLを使用してPHPでこれを構築し始めました(明らかに、それがサイトで使用されているためです)。現在、PHP スクリプトはほぼ完璧に動作していますが、サブ メニューのループをセットアップする方法を考え出すのに苦労しているという事実を除きます。
PHP と MySQL に関しては、私は初心者に過ぎないので、私がやっているいくつかのことはよりクリーンにできると確信しています。
以下に、私が作成した PHP スクリプトを示します。このスクリプトは現在、「メイン メニュー」に対しては完璧に機能しますが、ご覧のとおり、「サブ メニュー」に対するループはありません。私がここで試みようとしていることを行うための最良の方法を教えていただければ、それは素晴らしいことです!
function mainMenu() {
// connect to mysql
$link = mysql_connect( 'localhost', 'db_user', 'db_password' );
// select the database
mysql_select_db('db_name', $link);
$mSql = "
SELECT a.*,
b.post_title AS sub_title,
b.post_name AS sub_name
FROM wp_posts AS a
LEFT JOIN wp_posts AS b
ON a.ID = b.post_parent
AND a.post_type = b.post_type
WHERE a.post_type='page'
AND a.post_status='publish' AND a.post_parent=0
GROUP BY a.ID
";
$mItems = mysql_query($mSql);
echo '<ul id="menu-main-nav" class="menu">';
while($mResults = mysql_fetch_assoc($mItems)){
echo '<li>';
echo '<a href="'.$mResults['post_name'].'">'.$mResults['post_title'].'</a>';
if($mResults['sub_title'] && $mResults['sub_name'] != null){
echo '<ul class="sub-menu">';
echo '<li>';
echo '<a href="'.$mResults['sub_name'].'">'.$mResults['sub_title'].'</a>';
echo '</li>';
echo '</ul>';
}
echo '</li>';
}
echo '</ul>';
}
どうぞよろしくお願いいたします。
-タイラー