我正在开发一个插件,需要在灯箱中打开一个wordpress帖子。以下是一些详细信息:
目前,我正在为lightbox使用colorbox。将触发灯箱以打开外部。接收post id为$GET变量的php文件只有标题、元信息、内容和评论部分应该在lightbox中打开,而不是主题页眉和页脚所有的短代码、嵌入的youtube链接等都应该可以在打开的帖子中使用如果有办法挑选当前主题的单曲,那就太好了。php文件,从中去掉页眉、边栏和页脚,只显示格式化的内容。但我相信这取决于主题,不是一个通用的解决方案,这里是当前的插件链接:http://test.anshulsharma.in/
外部php文件的当前代码为:
if(!function_exists(\'get_post\'))
{
require_once("../../../../wp-load.php");
}
$thepost = get_post($_GET["ID"]);
$thecontent = $thepost->post_content;
$thetitle = $thepost->post_title;
$thelink = get_permalink($_GET["ID"]);
?>
<div id="cg-post-container" style="width:<?php echo get_cg_option(\'lightbox_width\'); ?>px;">
<div id="cg-post-title">
<a href="<?php echo $thelink; ?>"><?php echo $thetitle; ?></a>
</div>
<div id="cg-post-content">
<?php echo $thecontent; ?>
</div>
</div>
在当前版本的插件中,只显示帖子内容。短代码不起作用,嵌入的链接不显示。此外,也无法查看或添加评论。我愿意写一首定制的单曲。php文件,并添加我自己的样式。但我只想知道最好的方法,以及如何将post id(从$GET变量到single.php)传递到lightbox。
SO网友:s_ha_dum
您应该考虑使用AJAX API. 一旦你掌握了诀窍,它就会变得更容易,并为你省去很多头痛。
您特别提出了一个问题:您的Lightbox应该生成可识别的标记,您可以使用该标记隐藏不需要的元素,就像创建一个打印机友好的页面一样。我并不特别了解LightBox,但ThickBox创建了几个<div>
s与TB_
ID上的前缀,其中之一是TB_ajaxContent
所以
#TB_ajaxContent .header { display:none }
... 将用类隐藏标题
header
. 非常简单,真的。
对于其他问题,只需在LightBox中加载单个帖子页面,并隐藏不需要的部分。一切正常。老实说,你甚至不需要那个回调脚本。您只需加载所需页面的URL即可。