我安装了“lightbox plus colorbox”插件,我正在尝试从CPT通知中调用最新帖子。这些通知已经过期,所以我希望在主页上显示最新的警报。
迄今为止,ive\'e从谷歌学到了什么:
<?php
$hotfoodpresent = get_posts( array(\'post_type\' => \'st_notice\', \'posts_per_page\' =>-1) );
if($hotfoodpresent) echo \'<a class="lbp-inline-link-1 cboxElement" href="#"></a>
<div style="display: none;">
<div id="lbp-inline-href-1" style="padding:10px; background: #fff;">
<?php if (have_posts()): while (have_posts()):the_post();
wp_redirect(get_permalink());
endwhile;
endif; ?>
</div>
</div>\'; ?>
但我想我走错了方向,因为我在弹出窗口中没有看到任何东西。
我不想使用插件,因为这个wordpress安装将保留在没有internet访问的本地网络上。
如果可以,请提前感谢您的帮助!
修订版2
<div class="lbp-inline-link-1 cboxElement">
<div style="display: none;">
<div id="lbp-inline-href-1" style="padding:10px; background: #fff;">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(); ?>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
修订版3
<div class="lbp-inline-link-1 cboxElement">
<div style="display: none;">
<div id="lbp-inline-href-1" style="padding:10px; background: #fff;">
<?php
$args = array(
\'posts_per_page\' => 1,
\'post_type\' => \'st_notice\'
);
query_posts($args);
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<a href="<?php the_permalink(); ?>"><P>Please click here for further information </a></p>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
最合适的回答,由SO网友:Ralf912 整理而成
您的代码无法工作。首先,您的endwhile;
和endif
语句位于字符串内。它们将被打印出来,而不是执行。正确的格式化代码如下所示
$hotfoodpresent = get_posts( array(\'post_type\' => \'st_notice\', \'posts_per_page\' =>-1) );
if ( $hotfoodpresent )
echo \'<a class="lbp-inline-link-1 cboxElement" href="#"></a>
<div style="display: none;">
<div id="lbp-inline-href-1" style="padding:10px; background: #fff;">\';
if ( have_posts() ): while ( have_posts() ): the_post();
wp_redirect( get_permalink() );
endwhile;
echo \' </div>\';
echo \'</div>\';
endif;
但我仍然想知道这个代码块应该做什么
if ( have_posts() ): while ( have_posts() ): the_post();
wp_redirect( get_permalink() );
endwhile;
之后
wp_redirect()
您必须使用退出代码
exit()
或
die()
. 但在使用之前
wp_redirect()
, 您不能打印任何内容。这将导致
Headers already send
错误
wp_redirect()
做
not 在屏幕上打印任何内容。没有其他代码可以输出任何内容。如果灯箱打开了,你想看什么?
也许可以试试printf( \'<a href="%s">Redirect</a>\', get_permalink() );
而不是wp_redirect()
您将获得一个带有文本“重定向”的链接。