過去のメルマガ一覧ショートコード
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個になりました。
メール送信した日付とタイトルを改行したので見やすくなってます。