私は同位体プラグインを使って私のWordpressのテーマを作ろうとしています。 http://isotope.metafizzy.co/ /
これまでのところ、それが示唆された後に私はそのような結果があります:
同位体組積はこのようになってはいけません。私は私が間違っていることについて本当に困惑しています。以下が私のコードです:
functions.php
function profolio_scripts () {
wp_enqueue_style( 'profolio-style', get_stylesheet_uri() );
wp_enqueue_script("isotope", get_template_directory_uri () . "/js/isotope.pkgd.min.js",array("jquery"));
wp_enqueue_script("imagesLoaded",get_template_directory_uri () . "/js/imagesloaded.pkgd.min.js",array("jquery","isotope"));
wp_enqueue_script("custom", get_template_directory_uri () . "/js/custom.js", array("jquery","imagesLoaded","isotope"));
};
add_action("wp_enqueue_scripts", "profolio_scripts");
Javascript:
jQuery(function($){
var container=$("#isotope-container").imagesLoaded(function(){
container.isotope({
itemSelector: '.item',
masonry:{
columnWidth:160
}
})
});
});
CSS:
.item {
width:160px;
margin: 1px;
}
#isotope-container {
margin:0 auto;
max-width:100%;
}
そしてループ内で動作するPhPコード。
<?php
get_header();
?>
<div id="isotope-container" >
<?php
if(have_posts()) :
while (have_posts()) : the_post();
get_template_part("content");
endwhile;
endif;
?>
</div> <!--isotope-container-->
「コンテンツ」テンプレート:
<div class="item">
<?php
if ( has_post_thumbnail() ) {
$perm = get_permalink();
$width = randomImageSize (200, 400);
$height = randomImageSize (200, 400);
$image = get_the_post_thumbnail($post_id, array($width,$height));
}
?>
<a href="<?php echo ($perm);?>"><?php echo ($image);?></a>
<div class="imageDesc">This beautiful image </div>
</div>
私の推測では、問題はimagesLoadedメソッドと関係があるということです。スクリーンショットが示すように、同位体の働きはしますが、正しく動作しません - 画像間には多くの空きスペースがあります。
問題解決にご協力ください
IsotopeImagesLoaded に関するドキュメントでは、この方法を2つ提案しています。私は一般的に2番目のものを使用します。つまり、 Isotopeを初期化し、イメージがロードされた後でlayout
name__をトリガーする です。私の経験上、これはよりうまくいきます。私がそれを証明する事実があるわけではありません。それとは別に、私はそれをたくさんのサイトでうまく動かしている。
JavaScriptファイルは次のようになります。
jQuery(document).ready(function($) {
var $container = $('#your-id');
$container.isotope({
layoutMode: 'masonry',
itemSelector : '.your-class',
masonry: {
columnWidth: 200,
}
});
$container.imagesLoaded( function() {
$container.isotope('layout');
});
});