我目前正在为客户开发一个 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>';
}
提前感谢您提供的任何帮助!
-泰勒