ワードプレス初心者です。
↓こちらのページを参考に、トップページ(固定ページ)の画像をSPとPCで別のものに設定しています。
https://takayakondo.com/image-switching/
SPで見た際の画像表示は何も問題ありません。
PCで見た場合、
ページはこのようなレイアウトで、サイトを開いた時にFirstViewで表示される1番上のみpc用の画像が表示され、
2番目以降はsp用の画像が表示されます。
そこから(例えば)6番目までスクロールし、そこでウィンドウをリロードするとそこで初めて6番目のpc用の画像が表示されます。
また、一度デベロッパーツールで表示を変更したり、単純にブラウザの幅をドラッグして変更するとこの現象はなくなります。
ローカル環境で作業していた時は何も問題なかったのですが、サーバーに上げたところ、こうなりました。
一応動作自体はしているので、
これは、jQueryやコードの問題ではなく、サーバーとデータベースの話なのでしょうか…初心者には手に負えなさそうなので、こちらで質問させていただきます。
関係がありそうな index.php/footer.php/functions.php のコードも一緒に書いておきます。
識者の方、宜しくお願い致します。
index.php
<?php get_header(); ?> <main> <div class="container"> <div class="top-inner"> <a href="<?php echo esc_url(home_url('/xxx/')); ?>" class="top-image"> <img src="<?php echo get_template_directory_uri(); ?>/images/xxx_sp.jpg" alt="" class="responsive_img"> </a> <div class="top-textbox-r"> <a href="<?php echo esc_url(home_url('/xxx/')); ?>" class="more-l">more</a> <a href="<?php echo esc_url(home_url('/xxx/')); ?>" class="work-detail-l"> <p>xxx</p> </a> </div> </div> <div class="top-inner"> 略 </div> <div class="top-inner"> 略 </div> <div class="top-inner"> 略 </div> <div class="top-inner"> 略 </div> <div class="top-inner"> 略 </div> </div> </main> <?php get_footer();
footer.php
<div class="copyright"> © 2021 xxx </div> </footer> <script> jQuery(function($){ $(function() { var $elem = $('.responsive_img'); var sp = '_sp.'; var pc = '_pc.'; var replaceWidth = 600; function imageSwitch() { var windowWidth = parseInt($(window).width()); $elem.each(function() { var $this = $(this); if(windowWidth >= replaceWidth) { $this.attr('src', $this.attr('src').replace(sp, pc)); } else { $this.attr('src', $this.attr('src').replace(pc, sp)); } }); } imageSwitch(); var resizeTimer; $(window).on('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(function() { imageSwitch(); }, 200); }); }); }); </script> <?php wp_footer(); ?> </body> </html>
functions.php
add_theme_support( 'title-tag' ); remove_action( 'add_option_new_admin_email', 'update_option_new_admin_email' ); remove_action( 'update_option_new_admin_email', 'update_option_new_admin_email' ); function wpdocs_update_option_new_admin_email( $old_value, $value ) { update_option( 'admin_email', $value ); } add_action( 'add_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 ); add_action( 'update_option_new_admin_email', 'wpdocs_update_option_new_admin_email', 10, 2 ); //jQuery読み込み function my_scripts() { wp_enqueue_script( 'jquery' ); } add_action( 'wp_enqueue_scripts', 'my_scripts' ); add_theme_support( 'post-thumbnails' );
あなたの回答
tips
プレビュー