私はサイトで作業しており、Isotope(http://isotope.metafizzy.co/docs/filtering.html)を使用して分類ページの投稿をフィルタリング/並べ替えようとしています。しかし、どういうわけか、何をしても動かせません。これについては緊急の支援が必要です。これが私のコーディングの様子です-まず、テーマのfunctions.phpにこれを入れて、カテゴリのリストを生成します
function isotope_categories() {
$terms = get_terms('videoscategory');
$html = '<ul class="filters option-set" data-option-key="filter">';
$html .= '<li><a href="#" data-option-value="*" class="selected">All items</a></li>';
foreach ($terms as $term) {
$html .= "<li><a href='#filter' data-filter='.boxes {$term->name}'>{$term->name}</a></li>";
}
$html .= '</ul>';
echo $html;
}
次に、分類法のページで、そのように呼びます-
<nav id="options" class="option-set filter" data-option-key="filter">
<?php isotope_categories() ?>
</nav>
カテゴリリンクは生成されますが、想定どおりに機能しません。これは私のページのループです-
<div id="content">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $terms = get_the_terms( $post->ID, 'videoscategory' ); ?>
<div class="boxes <?php foreach( $terms as $term ) echo ' ' . $term->name; ?>" style="width:100%; float:left; border-top:1px solid #ccc; margin-top:10px;">
// MY POST CONTENT AND DIVS
</div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
<?php if (function_exists("pagination")) {
pagination($additional_loop->max_num_pages);
} ?>
</div>
そしてその下のjs-
<script type="text/javascript">
jQuery(document).ready(function(){
var mycontainer = jQuery('#content');
mycontainer.isotope({
itemSelector: '.boxes'
});
// filter items when filter link is clicked
jQuery('#options a').click(function(){
var selector = jQuery(this).attr('data-filter');
mycontainer.isotope({ filter: selector });
return false;
});
});
</script>
私はそれをまったく動作させることができません、私はそれを動作させるためにいくつかの方法を試しましたが、私は何かが欠けているか、単にそれをすべて間違っていると思います。フィルタリングが機能するようにするには、何を修正または変更する必要がありますか?
どんな助けでも大歓迎です。ありがとう。
編集:
chromeデバッグコンソールを使用することで、このエラーを確認できました-Uncaught TypeError:Object [object Object] has no method'isotope'-しかし、それが何を意味するのかわかりません。