【MailPoet】過去のメルマガ一覧ショートコードの表示件数をカスタマイズする方法

過去のメルマガ一覧ショートコード

MailPoetのショートコード [mailpoet_archive] を使うと、サイドバー等で簡単に過去のメルマガ一覧が表示できるので便利なのですが、全ての送信済みメルマガ一覧を表示するので、ちょっと困りもんです。

でもググっても表示件数を制限するパラメータも有益な情報も見つけられなかったので、PHPコードを直接変更して調整することにしました。

変更するPHPコードを表示する

WordPressメニューの「プラグイン」から「プラグインエディター」をクリックします。

「プラグインを編集」画面が表示されたら、右上の「編集するプラグインを選択」の所で「MailPoet 3 (New)」を選び「選択」ボタンをクリックします。
「プラグインファイル」の内容が「MailPoet」のファイルリストになるので、「lib」を開き、その下の「Config」を開きます。

スクロールダウンすると「Shortcodes.php」がありますので、それを選択すると「選択したファイルの内容」に変更するPHPコードが表示されます。

PHPのコードの変更方法

Shortcodes.php を $newsletters という変数で検索すると、3ヶ所目に foreach という繰り返し処理の制御文が見つかります。
この繰り返し処理をしている回数を制限することで、メルマガ一覧の表示件数を制限することができます。

メルマガ一覧表示の foreach文は、過去のメルマガ一覧の全てを表示するまで表示を繰り返すので、表示件数をカウントして、制限したい件数を表示したら繰り返しを止めるというコードを追加します。

  • 繰り返し回数をカウントする変数 $iを0で初期化
  • 繰り返し表示のためのHTML文の最後で、その変数をカウントアップ
  • 変数が繰り返したい回数を超えていたら繰り返しを中断
  • ついでにメール送信した日付とタイトルを改行して見やすくする

実際のコード(赤太字が変更点です)

      $html .= '<ul class="mailpoet_archive">';
      $i = 0;
      foreach ($newsletters as $newsletter) {
        $queue = $newsletter->queue()->findOne();
        $html .= '<li>' .
          '<span class="mailpoet_archive_date">' .
            $this->wp->applyFilters('mailpoet_archive_date', $newsletter) .
          '</span><br>
          <span class="mailpoet_archive_subject">' .
            $this->wp->applyFilters('mailpoet_archive_subject', $newsletter, $subscriber, $queue) .
          '</span>
        </li>';
        $i++;
        if($i >= 5){
          break;
        }
      }
      $html .= '</ul>';
    }
    return $html;

変更した内容の保存

画面下部に「ファイルを更新」ボタンがあるのでそれをクリックします。

もし修正した内容が間違っていたら、以下のようなエラーメッセージが表示されるので、エラー発生行とエラー内容を見て、適宜修正してください。

問題がなければ「ファイルの編集に成功しました。」と表示されます。

修正結果

上のPHPコードで繰り返し回数を5回に制限したので、過去のメルマガ一覧の表示件数が5個になりました。
メール送信した日付とタイトルを改行したので見やすくなってます。

最新情報をチェックしよう!