我想在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']
}
答案 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时,如何设置