WordPressの新着記事をスライダーで表示するショートコードのコード

カルーセルスライダーを実装できるswiperを利用した。公式のドキュメントをしっかり読むのが吉。

作成するのに、参考にした記事はこちら、感謝です。

なお、コードは、プラグイン化している。

<?php
/*
Plugin Name: New Slider mono96
Description: 新着記事のカルーセルスライダー [mono96_shortcode_slider] 
Version: 1.0
*/

/* 参考 https://byacco.work/wordpress-post-slider-no_plugin/ */

if ( ! defined( 'ABSPATH' ) ) exit;

define( 'MY_PLUGIN_URL', plugins_url( '/', __FILE__ ) );



// ヘッダーに追加するコード
function add_slider_files() {
  //スタイルシートの読み込み
  wp_enqueue_style( 'swiper-style', 'https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css');
  wp_enqueue_style( 'swiper-mono96-style', MY_PLUGIN_URL .'css/swiper-style.css');
  
  //JavaScript の読み込み
  wp_enqueue_script( 'swiper-js', 'https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js', '', '', true);
   wp_enqueue_script( 'swiper-setting-js', MY_PLUGIN_URL . 'js/swiper_setting.js', '', '', true); 
}
add_action('wp_enqueue_scripts', 'add_slider_files');


// フッターに追加するコード
/*
function mono96_plugin_add_to_footer() {
echo '<script type="text/javascript" src="' . MY_PLUGIN_URL . 'js/swiper_setting.js"></script>';
}
add_action( 'wp_footer', 'mono96_plugin_add_to_footer' );
*/

// カルーセルスライダー ショートコード


function mono96_shortcode_slider() {
global $post;
ob_start();


 echo '<div class="swiper">';
 echo '<div class="swiper-wrapper">';

    $loop = new WP_Query(array(
      'post_type' => 'post', // ポストタイプを設定 デフォルト投稿はそのまま
      'posts_per_page' => 10 // 記事数を設定
    ));
    

    /* Start the Loop */

    while ($loop->have_posts()) : 
    $loop->the_post();

    echo '<div class="swiper-slide">';
    echo '<div class="swiper-slide__inner">';
    echo '<div class="swiper-slide__inner--item">';


       	if (has_post_thumbnail()) {
			echo '<figure class="post__thumb--img">'."\n";
			echo ' <!-- アイキャッチ画像 有り  -->'."\n";
   			echo '<a href="';
  			echo the_permalink();
			echo '" style="background-image: url(\'';
			echo the_post_thumbnail_url('large');
			echo '\')"></a>'."\n";
   		}else{ 
			echo '<figure class="post__thumb--img">'."\n";
			echo ' <!-- アイキャッチ画像がない場合  -->'."\n";
			echo '<a href="';
			echo the_permalink();
			echo '" style="background-image: url(\'';
			echo MY_PLUGIN_URL .'img/no-image.jpg';
			echo '\')"></a>'."\n";

			echo '</figure>'."\n";
    	}

       
  echo '<div class="text-block">';
             echo '<div class="meta-block">';
                echo '<span class="date">' . the_time('Y.m.d') . '</span>';

                $cats = get_the_category();
                foreach ($cats as $cat) :
                  if ($cat) echo '<span class="cat">' . $cat->cat_name . '</span>';
                endforeach;
                

              echo '</div>';
              echo '<a href="';
              echo the_permalink() ;
              echo '" rel="bookmark" title="';
              echo  $post->post_title;
              echo '">';
            	echo$post->post_title;
              echo '</a>';
            echo '</div>';
          echo '</div>';
        echo '</div>';
      echo '</div>';

    endwhile;
    wp_reset_query();


  echo '</div>';
  echo '<!-- If we need pagination -->';
  echo '<div class="swiper-pagination"></div>';
  echo '<!-- Add Arrows -->';
  echo '<div class="swiper-button-prev swiper-button-white"></div>';
  echo '<div class="swiper-button-next swiper-button-white"></div>';
  echo '  <!-- If we need scrollbar -->';
  echo '<div class="swiper-scrollbar"></div>';

echo '</div>';


return ob_get_clean();


}

add_shortcode( 'mono96_shortcode_slider', 'mono96_shortcode_slider' );
var Swiper = new Swiper('.swiper', {
  loop: true,
  autoplay: {
		delay: 4000,
		disableOnInteraction: true
	},
slidesPerView: 1,
  breakpoints: { // ブレイクポイント
    992: { // 画面幅992px以上で適用
      slidesPerView: 3,
      spaceBetween: 10
    }
  },
  pagination: {
    el: '.swiper-pagination',
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  scrollbar: {
    el: '.swiper-scrollbar',
  },
})

/* swiper */
.swiper-slide .post__thumb--img {
  margin: 0 0 15px;
}
.swiper-slide .post__thumb--img a {
  padding-top: 62.5%;
  width: 100%;
  display: block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.text-block a {
    padding-top: 0 !important;
}

.swiper-scrollbar.swiper-scrollbar-horizontal {
    display: none;
}

.swiper-button-next,
.swiper-button-prev {
    --swiper-navigation-color: #fff;
}
.swiper-pagination-bullet-active {
    background: #333;
}

/* ページネーション */
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: 70px;
}

あとは、テーマによっては、微調整のCSSが必要かもしれない。

微調整のCSS例

/* swiper */
.swiper {
    margin-left: 40px;
    margin-right: 40px;
}

.swiper-button-next:after,  
.swiper-button-prev:after {
    top: -50px;
    position: relative;
}
.text-block a {
    color: #333;
}
span.date {
    margin-right: 1em;
}

.swiper-button-next, .swiper-button-prev {
    --swiper-navigation-color: #333;
}

.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 180px;
}


@media screen and (max-width: 480px) {
.swiper-button-next:after,  
.swiper-button-prev:after {
	display:none;
	}
	.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 160px;
}
}

無料メルマガ

  • ブログに書けないココだけの裏話
  • お得なご案内
  • バックナンバーは非公開
  • 不定期発行
ものくろキャンプ メルマガ
購読登録フォーム
Eメール必須
お名前(姓)必須
お名前(名)必須

講座・ワークショップ に参加する

2023-04-05
20:00 - 22:00
2023-04-07
20:00 - 22:00
2023-04-08
11:00 - 13:30
15:00 - 18:00
2023-04-09
11:00 - 13:30
2023-04-13
19:00 - 22:00
2023-04-14
19:00 - 21:30
2023-04-15
11:00 - 13:30
14:00 - 16:00
2023-04-18
  • ブックマーク

著者情報

おおひがし のぶひと

大東 信仁

1976年大阪生まれ。鳥取大学大学院博士課程(専門は乾燥地農業)を中退後、零細企業の立ち上げに関わり、スタッフ育成・社内ITならびにWEBシステム開発を担当。6億円の受注プロジェクト案件をまとめる。2011年に過労にて就労禁止(双極性障害)の診断を受け、生き方を見つめなおす。双極性障害を克服し、2014年からフリーランスにてWEB・ITコンサルにてWordPressを得意とした活動を行い、1,200名を超えるコンサル実績を持つ。その中で2009年から書き続けているブログは、4,100記事を超え、2016年には月間65万PVを達成した。2018年に法人化し”株式会社あみだす”となる。現在は、コンサルタントに加えて、自己受容と自己理解を広げ、誰もがそのままで命を輝かせるトランスパーソナル心理学をベースとしたカウンセラーとして”心が通う組織づくり”の支援(企業内コミュニケーション改善コンサルティング)を中心に活躍中。


株式会社 あみだす 代表取締役/岡部明美LPL養成講座 認定心理カウンセラー ・セラピスト(業界歴 5年)/ ブロガー / WordPress & Woocommerceが得意 / 親指シフト歴11年/ orz レイアウト開発者

サービス提供領域

  • WEBコンサルティング
  • WEB・コンテンツ マーケティング
  • SEO コンサルティング
  • WEBサイト制作・運用保守サポート
  • EC サイト制作・運用保守サポート
  • WordPress 導入サポート
  • WordPress 運用サポート
  • SNS コンサルティング
  • Youtube コンサルティング
  • 情報発信 サポート
  • IT・WEBの枠組みを超えた経営支援
  • 講師・ワークショップ 運営サポート
  • 心理カウンセリング
  • 企業様向け コミュニケーション研修
  • 経営者様向け サポート
  • 自己成長・探求 サポート

お仕事のご依頼はこちら

WEB・ITコンサルティング

カウンセリング・セラピー

公式LINE

公式LINEにて、不定期ながら、モニターセッションやお得情報などのスケジュール案内や、心と向き合うコツなどを発信し、日常の中でカウンセリングの視点からの”気づき”を公式LINEにて語ります。ぜひ、ご登録ください。

友だち追加

【案内板】

このブログをはじめて読んだあなたへ
ぜひ読んでもらいたい記事を用意しました。

オンラインショップあります

↓ 下のバーナーをクリックすると移動します。


カテゴリー 一覧