我需要稍微修改帧视频播放器插件。https://wordpress.org/plugins/frames-video-gallery/
我希望它显示的播放列表仅针对当前登录的用户。
我认为实现这一点的最简单方法是更改以下文件中的SQL查询:frames-video-gallery/engine/api.php
以下是当前写入文件的函数:
function getPlaylists(){
$fields = $this->getFields(\'playlist\');
$lists = $this->db->query( \'SELECT oid,\'. $fields[\'cols\'] .\' FROM \'.$this->table->playlists, $fields);
return $lists;
}
因此,目前它正在为所有用户返回所有播放列表。
以下是我尝试的修改:
function getPlaylists(){
$current_user = wp_get_current_user();
$fields = $this->getFields(\'playlist\');
$lists = $this->db->query( \'SELECT oid,\'. $fields[\'cols\'] .\' FROM \'.$this->table->playlists, $fields WHERE wp_users.ID=\'$current_user->ID\');
return $lists;
}
尽管我的SQL语法出现了PHP错误。我不熟悉作者在SQL查询中使用的串联。有什么建议吗?我是不是遗漏了几句话?
谢谢
SO网友:scott
是的,我认为你的报价后哪里是倒退。可以这样尝试:
...$fields.\' WHERE wp_users.ID=\'.$current_user->ID );
“WHERE wp\\u users.ID=”部分是纯文本,用于作为查询的一部分,因此需要加引号。$current\\u user->ID是一个变量,应该位于引号之外。
如果这不起作用,我建议使用一个变量来存储SQL查询,然后将其作为调试输出。这样你就可以看到正在形成的东西,看看它是否是你所期望的。
我就是这样做的:
$sql = db->prepare( "SELECT * FROM $table WHERE user=%s", $current_user->ID );
希望这有帮助!
顺便说一句,我花了一段时间才习惯使用句点作为串联运算符。