我正在使用以下模板向我的wordpress网站添加辅助页面(没有网站的样式,菜单等),并且它没有从数据库返回任何结果。我读过无数的网页和几本WP书,我迷失了方向。我可以看到数据库中的四条记录,但页面没有显示。这是我的模板:
< PHP / * 模板名称:媒体播放器页面 * /?><!DOCTYPE html> > < HEAD> < meta charset =“<?php bloginfo('charset');?>” /> < title>在线媒体播放器< / title>
<?php wp_head(); ?> <link rel="stylesheet" href="/assets/css/music-player.css" type="text/css" media="screen" charset="utf-8"> <script src="/assets/js/jquery-1.8.3.js"></script> </head> <body> <div class="main-center"> <h1>Please select your choice of music</h1> <?php global $wpdb; $rows = $wpdb->get_results("select * from ppm_playlists"); foreach($rows as $row) : ?> <a class="openplayer" data-genre="<?php echo $row['id']; ?>" href="#"><?php echo $row['playlist']; ?></a> <?php endforeach; ?> </div> <!-- /.main-center --> <script type="text/javascript"> (function($) { $('.main-center').on('click', '.openplayer', function(e){ var genre = $(this).data('genre'); e.preventDefault(); alert(genre); }); })(jQuery); </script> </body> </html>
答案 0 :(得分:2)
$wpdb->get_results
will return an array of objects,不是数组数组,除非你传递第二个参数指示否则。如果您有debugging enabled,则会看到Fatal Error: Cannot use object of type stdClass as array....
您希望使用对象语法:
foreach($rows as $row) : ?>
<a class="openplayer" data-genre="<?php echo $row->id; ?>" href="#"><?php echo $row->playlist; ?></a>
<?php endforeach; ?>
或将第二个参数传递给get_results
$rows = $wpdb->get_results("select * from ppm_playlists", ARRAY_A);