php - 将选项传递给 jquery 文件的正确方法是什么?

标签 php javascript jquery wordpress variables

在我的主题的每一页上,用户都可以选择添加 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/

相关文章:

php - 如何使用 PHP 使用 LinkedIn 注册 API 获取电子邮件地址

javascript - 将标签添加到使用 R 中的 leaftime 插件为传单创建的时间轴 map

javascript - 如何使用CSS选择内部没有跨度的标签标签

php - 将变量保存到Localstorage,然后发送到Mysql DB

javascript - HTTP_REFERER 不适用于 javascript src

javascript - CJS 和 ES6 模块之间的语法差异

jquery ui多日期选择器数据范围没有周末

javascript - 删除除一类以外的所有类

php - 为什么谷歌地图代码阻止了我的其他 js 脚本?

javascript - 在 Jquery 中自动完成时获取所选值