jquery (bpopup) を使用して、カスタム投稿タイプの投稿をポップアップ ウィンドウにロードしようとしています。私がやろうとしていることの例は、http://outpost.laにあります。画像をクリックすると、ポップアップが表示されます。
最終的にはこれを行う関数を作成する必要があると思いますが、その方法についてはわかりません。これまでのところ、ページ テンプレートには「ポップアップをトリガーするボタン」と「ポップアップする要素」の 2 つのコード スニペットしかありません。最初のスニペットは、私がやりたいことをしています: 一連のカスタム投稿タイプのタイトルをボタンとして表示します。しかし、ポップアップにカスタム投稿タイプのコンテンツを表示するはずの 2 番目のスニペットは、すべてのカスタム投稿タイプのタイトル + コンテンツを表示しています。
背景にボタンがあるポップアップのスクリーンショット: http://cl.ly/image/1f0G0c2s2J3U
コード: `
<!-- Button that triggers the popup -->
<?php
$args = array(
'post_type' => 'portfolio_project',
'posts_per_page' => -1 );
$loop = new WP_Query( $args );
$i = 0;
echo'<button class="my-button">';
while ( $loop->have_posts() ) : $loop->the_post();
if ($i % 0 == 0 && $i > 0) {
echo '</button>' . "\n" . '<button class="my-button">';
};
?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
$i++;
endwhile;
echo '</button>';
?>
<!-- Element to pop up -->
<div id="element_to_pop_up">
<?php
// the query
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : ?>
<!-- pagination here -->
<!-- the loop -->
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<!-- end of the loop -->
<!-- pagination here -->
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
<!-- end custom post type loop -->
</div>
<!-- END Element to pop up -->
<script>
// Semicolon (;) to ensure closing of earlier scripting
// Encapsulation
// $ is assigned to jQuery
;(function($) {
// DOM Ready
$(function() {
// Binding a click event
// From jQuery v.1.7.0 use .on() instead of .bind()
$('.my-button').bind('click', function(e) {
// Prevents the default action to be triggered.
e.preventDefault();
// Triggering bPopup when click event is fired
$('#element_to_pop_up').bPopup({
appendTo: 'body'
, position: ['auto','0']
, positionStyle: 'fixed'
, scrollBar: 'false'
});
});
});
})(jQuery);
</script>
`