wordpress发布时在jquery里面的循环

时间:2015-04-11 03:49:50

标签: javascript php jquery wordpress

我想在javascript中循环所有帖子标题来构建我的画廊,但它不起作用我得到奇怪的输出 我的代码

  <?php
        query_posts(array( 
            'post_type' => 'musings'
        ) );  
         while (have_posts()) : the_post(); 
        $title = the_title();
        $desc = the_content();
        $galleryslider .= "{
                        'title'         : '".$title."',
                        'description'   : '".$desc."',
                        'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
                        'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
                        'button_list'   :
                        [
                            { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                            { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
                        ],
                        'tags'          : ['Portrait']
                    },";
     endwhile;
     $galleryslider = rtrim($galleryslider,',');
    ?>
    <script type="text/javascript">
    $(function(){
        <?php echo $finalslider;?>
    });
    </script>

预期

{
                'title'         : 'post 1 title',
                'description'   : 'post 1 desc',
                'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
                'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
                'button_list'   :
                [
                    { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                    { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
                ],
                'tags'          : ['Portrait']
            },{
                'title'         : 'post 2 title',
                'description'   : 'post 2 desc',
                'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
                'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
                'button_list'   :
                [
                    { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                    { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
                ],
                'tags'          : ['Portrait']
            }

Ouptut我得到(wordress页面显示标题和desc高于javasscript但是标题上的值和javacrit里面的desc是空白的,见下面的代码)

{
                'title'         : '',
                'description'   : '',
                'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
                'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
                'button_list'   :
                [
                    { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                    { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
                ],
                'tags'          : ['Portrait']
            },{
                'title'         : '',
                'description'   : '',
                'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
                'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
                'button_list'   :
                [
                    { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                    { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
                ],
                'tags'          : ['Portrait']
            }

2 个答案:

答案 0 :(得分:1)

从我对Wordpress的了解很少,尝试直接回显数据或保存到输出缓冲区并稍后回显。此外,您可能必须在the_title()上返回false才能使用strip_tags()。此外,$desc似乎没有定义。:

<?php
    ob_start();
    query_posts(array('post_type' => 'musing'));

    while (have_posts()) : the_post(); ?>
        {
            // the_title() can use a false to return the value for use with strip_tags (apparently)
            'title'         : '<?php echo stripslashes(the_title(false)); ?>',
            // Where is this $desc coming from?
            'description'   : '<?php echo $desc; ?>',
            'thumbnail'     : ['images/small/1.jpg', 'images/small/2.jpg'],
            'large'         : ['images/large/1.jpg', 'images/large/2.jpg'],
            'button_list'   : [
                { 'title':'Demo', 'url' : 'http://bonchen.net/' },
                { 'title':'Download', 'url':'http://porfolio.bonchen.net/'}
            ],
            'tags'          : ['Portrait']
        }, <?php
    endwhile;
    $data   =   ob_get_contents();
    ob_end_clean();
?>
<script type="text/javascript">
    $(function(){
            <?php echo $data; ?>
        });
</script>

答案 1 :(得分:0)

我不相信你必须改变你的代码,因为你似乎没有使用正确的Wordpress函数/没有向他们传递正确的参数。默认情况下,the_title()&amp; the_content()导致在运行时显示。

要以编程方式使用它们,您需要以下内容:

<?php
        query_posts(array( 
            'post_type' => 'musings'
        ) );  
         while (have_posts()) : the_post(); 
        $title = the_title(false);
        $desc = get_the_content();
        $galleryslider .= "{

        ...

您的原始代码示例然后回显$ finalslider变量 - 这是一个错字吗?如果不是,当您在构建中使用$ galleryslider时,如何设置