我正在添加一个辅助页面到我的wordpress网站(没有网站的样式,菜单等)使用以下模板,它不返回任何结果从数据库。我读了无数的网页和一些WP书籍,我很迷茫。我可以看到数据库中的四条记录,但页面没有显示。这是我的模板:
& lt; ?php/*模板名称:媒体播放器页面*/?> & lt; !DOCTYPE html>>& lt;头>& lt;元charset = " & lt; ?php bloginfo("字符集");?> "/>
在线媒体播放器 <?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>
$wpdb->get_results
将返回一个对象的数组,而不是数组的数组,除非您向它传递第二个参数另有指示。如果您启用了调试,您将看到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);