1

我目前正在为客户开发一个 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>';
}

提前感谢您提供的任何帮助!

-泰勒

4

1 回答 1

1

使用 Wordpress 的功能,例如wp_nav_menu

于 2013-06-27T15:14:08.217 回答