1
質問:高度なカスタムフィールドを使用してギャラリーを作成しました。私がギャラリーに追加したすべてのイメージ私はカスタムタクソミーミー(カテゴリ)を与えました。 「ファッション」、「肖像画」などギャラリー上のすべての用語をリストアップしました。たとえば、用語をクリックすることができます。ファッション、および下の画像コンテナに「ファッション」という用語を含むすべての画像がロードされます。 https://demo.kaliumtheme.com/photography/と同様です。私は、画像をクリックして読み込むことに悩まされています。手伝ってくれますか?メディアカテゴリとAjaxで高度なカスタムフィールドギャラリーを使用する
はここでギャラリーのためのコードです:
<?php $images = get_field('gallery');
if($images): ?>
<ul><div class="image__sizer"></div>
<?php foreach($images as $image): $link = get_field('link', $image['ID']); ?>
<?php $terms = get_the_terms($image['ID'], 'category_media'); ?>
<?php if (!empty($terms)) : $term = array_shift($terms); ?>
<li class="<?php echo $term->term_id; ?>">
<div data-200-bottom="top: 0px;opacity:0%;" data--200-top="top:-250px;opacity:100%;" class="image__wrap">
<a href="<?php echo $image['url']; ?>">
<img src="<?php echo $image['sizes']['large']; ?>" alt="<?php echo $image['alt']; ?>" />
</a>
<div class="image__meta">
<span><?php echo $term->name; ?> - <?php echo $image['title']; ?></span>
</div>
</div>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
カスタム分類が 'category_media' と呼ばれます。このjQueryの機能を
function prefix_load_term_posts() {
$term_id = $_POST[ 'term' ];
$args = array (
'term' => $term_id,
'posts_per_page' => -1,
'order' => 'DESC',
'tax_query' => array(
array(
'taxonomy' => 'category_media',
'field' => 'id',
'terms' => $term_id,
'operator' => 'IN'
)
)
);
global $post;
$myposts = get_posts($args);
ob_start(); ?>
<?php foreach ($myposts as $post):
echo $images = get_field('gallery', $post->ID); ?>
<?php endforeach; ?>
<?php wp_reset_postdata();
$response = ob_get_contents();
ob_end_clean();
echo $response;
die(1);
}
:私は、以下のこの1のような機能を使用するために探していた
<script>
function term_ajax_get(termID) {
jQuery("a.ajax").removeClass("current");
jQuery("a.ajax").addClass("current"); //adds class current to the category menu item being displayed so you can style it with css
jQuery('.image-container ul li').fadeOut();
jQuery("#loading-animation").show();
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); //must echo it ?>';
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "load-filter2", term: termID },
success: function(response) {
jQuery(".image-container ul").html(response);
return false;
}
});
}
</script>
はしかし、何のイメージがコンテナにロードされていません。誰でも助けて私に何が欠けているか教えてもらえますか?大変感謝しています。
特定の問題を抱えているだけのところ、すべてのコードがあなたを与えることはできません。詳細を与えることを試してみて、コード を短縮します。 – AShone