在我的主题的每一页上,用户都可以选择添加 slider 。当他们这样做时,他们可以为 slider 选择多个设置。这包括诸如幻灯片在更改之前暂停多长时间、幻灯片在更改时过渡需要多长时间以及它使用什么类型的过渡等内容。
现在,如果我只是对此进行硬编码而不让用户选择 slider 的选项,代码将如下所示:
<script>
jQuery(function(){
jQuery('#camera_wrap_3').camera({
height: '40%',
thumbnails: true,
time: 3500,
fx: 'scrollBottom',
transPeriod: 1200,
autoAdvance: true,
minHeight: '50px',
mobileNavHover: false,
});
});
</script>
将用户选择设置时创建的变量传递给上面的代码的正确方法是什么?
请记住,我希望能够使用 wp_enqueue 以正确的方式将此文件入队
最佳答案
我假设这与您关于将变量传递给 wp_head
的问题有关 - 如果您想从插件中存储参数,Wordpress 提供两种(如果您使用多站点则为三种)方法,具体取决于你的参数范围。
如果它特定于页面/帖子,那么您应该使用 Custom Fields API 将参数存储在 postmeta
表中。您将使用 update_post_meta($post_id, $key, $data)
并使用 get_post_meta($post_id, $key, $single)
获取它,其中 $single
是 true/false,具体取决于您是需要值数组还是只需要一个值 - 如果它类似于“width”,您可能会将其设置为 true
。更多信息在这里 - http://codex.wordpress.org/Custom_Fields .
如果它适用于整个站点,那么您可以使用 update_option($key, $data) 将其存储在
并使用 options
表的 Options API )get_option($key, $default)
检索它,如果 $key
无法返回,则返回 $default
被找到,否则返回false
。仅适用于多站点的最后一个选项也是选项 API 的一部分,并使用 update_site_option($key, $data)
和 get_site_option($key, $default)
。更多信息在这里 - http://codex.wordpress.org/Options_API .
管理自定义字段(以及通过高级功能的选项)的绝佳选择是 Advanced Custom Fields .
假设这是每个帖子/页面,并且您正在使用 ACF 设置值,然后您可以编写一个钩子(Hook)到 wp_head
以将这些字段拉入您的 Javascript。您可以将它放入主题中的 functions.php
文件中,或者如果您希望它在更改主题时保留下来,您可以使用 Custom Functions Plugin。 .
// hooked to wp_head
function my_wp_head(){
// get the current $post
global $post;
// get value or key "camera_time"
$camera_time = get_post_meta($post->ID, "camera_time", true);
// write result to javascript
echo "<script>";
echo "var cameraTime = {$camera_time};";
// ... the rest of your javascript
echo "</script>";
}
if (is_single()) // only include on single pages
add_action( 'wp_head', 'my_wp_head' );
关于php - 将选项传递给 jquery 文件的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298400/