超大.js如何在设置脚本中调用 JSON 编码数据


Supersized.js how do you call JSON Encoded Data into the settings script

好吧,我是一个新手,但这里是:

我正在使用超大.js 在 wordpress 网站上为首页创建全尺寸背景图像幻灯片就足以说明脚本已设置并且现在可以工作,我的下一个问题是让脚本使用wp_attachment拉取图像

在我的函数.php文件中,我创建了这个:

// Get all of the images attached to the current post
// These images will be used in the Supersized homepage gallery
function supersized_get_images($size = 'full') {
    global $post;
    $photos = get_children( array('post_parent' => $post->ID, 'post_status' =>     'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') );
    $results = array();
    if ($photos) {
        foreach ($photos as $photo) {
        // get the correct URL for the selected size
        $results['image'] = wp_get_attachment_url($photo->ID);
    }
}
// encode into JSON format and pass to javascript supersettings.js
echo json_encode($results); 
}

所以无论如何(我把echo放进去,因为我想看到它正在产生正确的 JSON 格式。回显的输出如下所示:

{"image":"http:'/'/pilarcorrias.secondvariety.org'/wp-content'/uploads'/0bcf5aa159739b260a77758c7d33699b.jpg"}

我假设这是对的。超大号有一个设置文件,如下所示:

jQuery(function($){
            $.supersized({
                //Functionality
                slideshow               :   1,      //Slideshow on/off
                autoplay                :   1,      //Slideshow starts playing automatically
                start_slide             :   1,      //Start slide (0 is random)
                random                  :   0,      //Randomize slide order (Ignores start slide)
                slide_interval          :   3000,   //Length between transitions
                transition              :   1,      //0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
                transition_speed        :   500,    //Speed of transition
                new_window              :   1,      //Image links open in new window/tab
                pause_hover             :   0,      //Pause slideshow on hover
                keyboard_nav            :   1,      //Keyboard navigation on/off
                performance             :   1,      //0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
                image_protect           :   1,      //Disables image dragging and right click with Javascript
                image_path              :   '/../../../slideshow/', //Default image path
                //Size & Position
                min_width               :   0,      //Min width allowed (in pixels)
                min_height              :   0,      //Min height allowed (in pixels)
                vertical_center         :   1,      //Vertically center background
                horizontal_center       :   1,      //Horizontally center background
                fit_portrait            :   1,      //Portrait images will not exceed browser height
                fit_landscape           :   0,      //Landscape images will not exceed browser width
                //Components
                navigation              :   1,      //Slideshow controls on/off
                thumbnail_navigation    :   1,      //Thumbnail navigation
                slide_counter           :   1,      //Display slide numbers
                slide_captions          :   1,      //Slide caption (Pull from "title" in slides array)
                slides                  :   [       //Slideshow Images
                                                    {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.1/slides/quietchaos-kitty.jpg', title : 'Quiet Chaos by Kitty Gallannaugh', url : 'http://www.nonsensesociety.com/2010/12/kitty-gallannaugh/'},  
                                                    {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.1/slides/wanderers-kitty.jpg', title : 'Wanderers by Kitty Gallannaugh', url : 'http://www.nonsensesociety.com/2010/12/kitty-gallannaugh/'},  
                                                    {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.1/slides/apple-kitty.jpg', title : 'Applewood by Kitty Gallannaugh', url : 'http://www.nonsensesociety.com/2010/12/kitty-gallannaugh/'}  
                                            ]

            }); 
        });

此文件中的最后一行声明参数slides,然后将图像引用传递给幻灯片。现在我已经检查过了,幻灯片在没有 URL 和 TITLE 信息的情况下运行良好,这意味着我只需要给它一个image对象,这里是文件 URI,这意味着我的 JSON 应该逐字工作。现在我知道我正在正确编码 PHP 数组,如何将其放入上面的超级设置.js文件中......一直在到处寻找,但没有找到可以解释它的东西,我可以让我的小大脑四处走动。任何帮助将不胜感激。

不错的一个!此外,如果要从数组中排除缩略图:

function supersized_get_images($size = 'full') {
global $post;
$thumb_id = get_post_thumbnail_id(get_the_ID()); // gets the post thumbnail ID
$photos = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID', 'exclude' => $thumb_id) );
解决了

我是一个麻木的人 - 我只是将脚本放在函数文件中并称其为 wp-footer 钩子,它允许我在脚本本身中回显 json 变量。对于其他任何试图使用Wordpress附件系统超大的人来说,这是我完整使用的代码:

调用附件并创建 json 数组:

// Get all of the images attached to the current post
// These images will be used in the Supersized homepage gallery
function supersized_get_images($size = 'full') {
global $post;
$photos = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') );
$results = array();
if ($photos) {
    foreach ($photos as $photo) {
    $keys [] = $photo->ID;
    $captions [] = $photo->post_excerpt;
    $descriptions [] = $photo->post_content;
        // get the correct URL for the selected size
        $results[] = array('image' => wp_get_attachment_url($photo->ID, 'full'), 'title' => '', 'url' => get_attachment_link($photo->ID));
    }
}
return str_replace(''/', '/', json_encode($results));
}

好的,这样就可以获取图像,创建数组并正确格式化URL,去除转义斜杠,如下所示 http:///''/www。接下来,我必须在正文标签之前的页脚中嵌入脚本,所以在这里:

function super_settings() { ?>
<script type="text/javascript">
jQuery(function($){
            $.supersized({
                //Functionality
                slideshow               :   1,      //Slideshow on/off
                autoplay                :   1,      //Slideshow starts playing automatically
                start_slide             :   1,      //Start slide (0 is random)
                random                  :   0,      //Randomize slide order (Ignores start slide)
                slide_interval          :   3000,   //Length between transitions
                transition              :   1,      //0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
                transition_speed        :   500,    //Speed of transition
                new_window              :   1,      //Image links open in new window/tab
                pause_hover             :   0,      //Pause slideshow on hover
                keyboard_nav            :   1,      //Keyboard navigation on/off
                performance             :   1,      //0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
                image_protect           :   1,      //Disables image dragging and right click with Javascript
                image_path              :   '/../../../slideshow/', //Default image path
                //Size & Position
                min_width               :   0,      //Min width allowed (in pixels)
                min_height              :   0,      //Min height allowed (in pixels)
                vertical_center         :   1,      //Vertically center background
                horizontal_center       :   1,      //Horizontally center background
                fit_portrait            :   1,      //Portrait images will not exceed browser height
                fit_landscape           :   0,      //Landscape images will not exceed browser width
                //Components
                navigation              :   0,      //Slideshow controls on/off
                thumbnail_navigation    :   1,      //Thumbnail navigation
                slide_counter           :   1,      //Display slide numbers
                slide_captions          :   1,      //Slide caption (Pull from "title" in slides array)
                slides                  :   <?php echo supersized_get_images(); ?>

            }); 
        });
</script>
<?php }
add_action('wp_footer', 'super_settings');

这会向wp_footer添加一个操作,该操作调用将脚本嵌入页脚的 super_settings 函数,您可以看到脚本中的最后一行回显supersized_get_images()函数并将键和值数组直接输出到 javascript 中。

我很高兴我能自己回答这个问题,因为这是一个菜鸟问题,我问它感到很尴尬,但我希望这可以帮助那些想要使用超大尺寸而不必在 wordpress 中使用自定义上传路径或弄乱 FTP 的人 - 只需使用您的标准 wordpress 帖子库。]您所要做的就是在要显示背景的页面上包含超大.js和设置脚本。中提琴!如果有人有改进,他们可以建议将它们发布在这里。

否则,

如果你不会把 php json 和 php 到 json 等混为一谈;如果你想要一种清晰的方法来解析 json 文件,那么使用 getJson 就可以了。

            jQuery(function($){

            var urltojson = 'getjson.json';


            $.getJSON(urltojson, function(photos){

            $.supersized({

                // Functionality
                slide_interval          :   5000,       // Length between transitions
                transition              :   6,          // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
                transition_speed        :   1000,       // Speed of transition

                // Components                           
                slide_links             :   'blank',    // Individual links for each slide (Options: false, 'num', 'name', 'blank')
                slides                  :   photos

            });
            });
        });

如果 Json 已满载,将启动超大尺寸。这一切都没有Javascript中的脏php代码。