我想用jQuery TreeView 在wp\\u list\\u页面上编写脚本,以获得良好的可折叠树效果。
脚本要求我向列表元素添加一些类,例如:
<ul id="red" class="treeview-red">
所以我试着把这个放在我的模板中:
首先,通过wp\\u enqueue\\u script()在我的模板页面上加载脚本
wp_enqueue_script("av_jquery_tree");
get_header();
其中,插件中定义了“av\\u jquery\\u tree”:
function av_jquery_tree() {
wp_register_script(\'jquery.treeview\', get_template_directory_uri() . \'/js/jquery.treeview/jquery.treeview.js\', array(\'jquery\'), \'1.0\' );
wp_register_script(\'jquery.cookie\', get_template_directory_uri() . \'/js/jquery.treeview/jquery.cookie.js\', array(\'jquery\'), \'1.0\' );
wp_enqueue_script(\'jquery.treeview\');
wp_enqueue_script(\'jquery.cookie\');
}
add_action(\'wp_enqueue_scripts\', \'av_jquery_tree\');
其次,为了向页面上的第一个ul元素添加类和id,我只需在调用wp\\u list\\u页面的上方插入以下脚本:
<script>
jQuery(document).ready(function(){
jQuery("ul").first().attr("id", "red").addClass("treeview-red");
});
</script>
不幸的是,我的输出只是wp\\u list\\u页面上的一堆红线。还请记住,我使用的是漫反射主题
preloads jquery.
最合适的回答,由SO网友:Jared 整理而成
EDIT: 在与AlxVallejo聊天后,我们找到了一个解决方案。下面是我们讨论的内容:
您没有正确使用wp_enqueue_scripts
钩子及其附带的函数,正如我告诉您的,这些钩子和操作需要在functions.php
. 您还发现自己没有使用jQuery初始化TreeView脚本。
如果其他人有这个问题,聊天日志就在这里,我们做了一些故障排除,我解释了一些事情,但基本上都在下面的链接上:
http://chat.stackexchange.com/rooms/2258/discussion-between-alxvallejo-and-jared
正如kaiser所指出的,您不应该在WP核心中添加或编辑任何文件,因此将脚本从
wp-includes
是个禁忌。
此外,jQuery没有正常运行。与所有jQuery一样,当DOM准备就绪时,应该使用类似的内容(稍微修改一下以获得更好的功能):
<script>
jQuery(document).ready(function(){
jQuery("ul:first-child").attr("id", "red").addClass("treeview-red");
});
</script>
但你也可以创建一个文件
jquery.treeview.addclass.js
并使用WP将其排队(见下文)以最佳实践来完成这一点。
对于正在排队的脚本,请尝试以下操作(假设您正在编辑活动主题的functions.php):
function my_enqueue_scripts() {
wp_enqueue_script( "jquery" );
wp_enqueue_script( "jquery-treeview", get_bloginfo( "template_url" ) . "/path/to/jquery.treeview.js" );
}
add_action( "wp_enqueue_scripts", "my_enqueue_scripts" );
这只是不正确使用这些语言/方法的问题。如果你的问题仍然存在,请用更多信息更新你的问题,说明原因,我将扩大我的答案(并删除我的反对票)。