3

私は編集された Supersized を持っています... wp の写真に関するループのコードを追加しました....

だから私はオリジナルでこれを持っています:

slides : [
                                                    {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-2.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-2.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'},
                                                    {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-3.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-3.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'}
                                        ],

そして私は wp から for loop ギャラリーを編集しました:

slides : [

                    <?php query_posts('cat=46'); ?> 
                    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>     
                        <?php
                            $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
                            $thumb = wp_get_attachment_image_src($thumb[0], false);
                            $thumb = $thumb[0];
                        if ( has_post_thumbnail() ) { ?>
                                {image : '<?php echo $thumb; ?>'},
                    <?php } ?>
                    <?php endwhile; else: ?>
                    <?php endif; ?>
                    <?php wp_reset_query(); ?>
                    ],

Chrome、Firefoxなどで動作します...

しかし、IE 8 - 7 および古い Firefox では、このアラートに問題があります。

メッセージ: 'slides[...].url' は null またはオブジェクトではありません

ライン: 23

シャア:3

コード: 0

URI: supersized.3.0.js

本当の問題は最後のカンマだと聞いたことがあります (この投稿の最初のコードでわかるように、カンマはありません...そして完全に機能します。

だから私は編集されたスライドで最後のコンマを削除するために解決したい...それは1枚の画像でcommeを繰り返し、ieでこの問題を引き起こすからです...どうすればこの最後のコンマを削除できますか?

4

5 に答える 5

1

なぜあなたは頻繁に PHP に出たり入ったりしているのですか? めちゃくちゃ非効率です…

slides : [ 
    <?php
    query_posts('cat=46');
    if ( have_posts() ) {
        $post_array = Array();
        while ( have_posts() ) {
            the_post();
            $thumb = get_post_meta($post->ID,'_thumbnail_id',false); 
            $thumb = wp_get_attachment_image_src($thumb[0], false); 
            $thumb = $thumb[0]; 
            if ( has_post_thumbnail() ) {
                $post_array[] = "{image : '".$thumb."'}";
            } 
        }
        echo implode(",",$post_array);
    }
    wp_reset_query();
    ?>
], 
于 2012-10-02T23:20:19.067 に答える
0

問題は最後の昏睡に関するものですか? はいの場合、すべての画像を変数に保存する必要がある場合は、ループの最後にある最後のコマを取り除き、結果を出力します。

<?php $string = ''; ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>     
                    <?php
                        $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
                        $thumb = wp_get_attachment_image_src($thumb[0], false);
                        $thumb = $thumb[0];
                    if ( has_post_thumbnail() ) { ?>
                <?php  $string.= '{image : '.$thumb.'},';
                <?php } ?>
                <?php endwhile; ?>
                <?php echo substr($string, -1); ?>
于 2012-10-02T23:21:24.943 に答える
0

3 つのソリューション:

1:

<?php if ( have_posts() ) : $i=0; while ( have_posts() ) : the_post(); ?>     
                        <?php
                            $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
                            $thumb = wp_get_attachment_image_src($thumb[0], false);
                            $thumb = $thumb[0];
                        if ( has_post_thumbnail() ) { ?>
                                <?=($i>0?',':'')?>{image : '<?php echo $thumb; ?>'}
                    <?php  } $i++;?>

2:

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>     
                            <?php
                                $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
                                $thumb = wp_get_attachment_image_src($thumb[0], false);
                                $thumb = $thumb[0];
                            if ( has_post_thumbnail() ) { ?>
                                    $string[]="{image : '<?php echo $thumb; ?>'}";
                        <?php } if (!empty($string)) implode(",",$string);

木:

     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>     
                                <?php
                                    $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
                                    $thumb = wp_get_attachment_image_src($thumb[0], false);
                                    $thumb = $thumb[0];
                                if ( has_post_thumbnail() ) { ?>
                                        $string.="{image : '<?php echo $thumb; ?>'}";
                            <?php } $lenght=strlen($string)-2;
echo substr($string,0,$lenght);

私の見解では、2 番目の解決策が最もクリーンです。

于 2012-10-02T23:26:01.977 に答える
0

jsonスライド配列の形成に使用しない理由

<?php 
$slide_arr = array ();

query_posts('cat=46'); 
if ( have_posts() ) : 
  while ( have_posts() ) : the_post();     
    $thumb = get_post_meta($post->ID,'_thumbnail_id',false);
    $thumb = wp_get_attachment_image_src($thumb[0], false);
    $thumb = $thumb[0];
    if ( has_post_thumbnail() ) { 
      $slideObj = new stdClass;
      $slideObj->image = $thumb; 
      $slide_arr[] = $slideObj;
    } 
  endwhile; 
else: 
endif; 
wp_reset_query(); 

$slide_json = json_encode($slide_arr);
?>

var slide_json = '<?php echo $slide_json; ?>';
var slide_arr  = eval('(' + slide_json + ')');
// js code ...

slides : slide_arr,
于 2012-10-03T07:28:15.493 に答える
-2

JS オブジェクトの配列の末尾にコンマを付けることは有効であるため、コンマは問題ではありません。このエラーは、スライド オブジェクトの URL プロパティを設定していないためにスローされます。これは、現在出力している JSON 文字列です。

{image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-2.jpg'}

ただし、次のようなスライドには完全なオブジェクトが必要です。

{image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-2.jpg', title: 'YOUR TITLE HERE', thumb: 'SOME IMAGE PATH GOES HERE', url: 'SOME URL PATH GOES HERE'}

アップデート:

人々は、コンマに何らかの問題があると考えているようです。これが主な問題だとは思いません。問題が発生する可能性があります (そうなるとは思いません) が、それ以外に、この男のコードは、彼が質問で指摘したエラーをスローせずには機能しません。問題が何であるかを人々に示すために、私はスーパーサイズのソースに直接行きました.

var imageLink = (options.slides[options.slides.length - 1].url) ? "href='" + options.slides[options.slides.length - 1].url + "'" : "";

そこにそれがある。HIS ERROR MESSAGEが言うように、23行目。スクリプトは、各スライド オブジェクトの URL プロパティにアクセスしようとしています。しかし、彼は URL プロパティを設定していません。そのため、常に THE USER SAID HE IS GETTING というエラーがスローされます。

于 2012-10-02T23:19:22.310 に答える