-1

嗨,我需要为 wordpress 网站创建一个简单的弹出功能。

我得到了正在运行并正确显示帖子的循环。单击后发布应出现在弹出窗口中。我到目前为止所得到的。除了添加fancybox来完成它的工作。

<a class="modalbox" rel="<?php echo $post->ID; ?>" href=" http://localhost/makijaz/?page_id=12">
     <article> ...Wordpress post </article>

我从其他线程中得到了下面的那个,但它不起作用。

 $(".modalbox").on("click", function() {
       var postId = $(this).prop("rel");
       $(this).fancybox();

    });

href in 指向带有其他循环的模板页面。需要简单地 gram PostID(它在 rel 中)并将其放入其他循环以在弹出窗口中显示。

    <?php
/*
Template Name: Ajax Post Handler
*/
?>
<?php
    $post = get_post($_GET['id']);
?>
<?php if ($post) : ?>
    <?php setup_postdata($post); ?>
    <div class="whatever">
        <h2 class="entry-title"><?php the_title() ?></h2>
        <div class="entry-content">
            <?php the_content(); ?>
        </div>
    </div>
<?php endif; ?>

希望我已经说清楚了。

4

2 回答 2

0

如果您想传递帖子 ID以便$post = get_post($_GET['id']);获取它,您可以尝试

jQuery(document).ready(function ($) {
    $(".modalbox").on("click", function (e) {
        e.preventDefault();
        var postId = $(this).prop("rel");
        $.fancybox.open({
            href: this.href + "&amp;id=" + postId,
            type: "ajax"
        });
    });
});

JSFIDDLE

于 2013-06-06T17:51:15.400 回答
0

我猜你的页面模板没有 get_header 和 get_footer 所以在你的示例脚本中不会加载。

<?php
  /*
  Template Name: Your Temp Name
  */
get_header(); ?>
于 2013-06-06T11:47:01.940 回答