Amazonで商品を見る セール会場へ

SWELL│LPページでカスタムテンプレートを表示する方法

SWELLの投稿タイプ「LP」で独自のPHPテンプレートを選ぶには、テンプレートファイルに Template Post Type: lp を指定します。WordPress標準のテンプレート機能を使うため、独自の保存処理をfunctions.phpに追加する必要はありません。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

子テーマにLP用テンプレートを置く

有効なSWELL子テーマの直下に template-waza-lp.php を作り、次の内容を保存してください。これはファイル全体のコードです。functions.phpやCode Snippetsには貼り付けません。親テーマのファイルは変更しません。

<?php
/**
 * Template Name: WAZA LPサンプル
 * Template Post Type: lp
 */
if ( ! defined( 'ABSPATH' ) ) { exit; }
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<main id="waza-lp" style="max-width:60rem;margin:auto;padding:1.5rem;overflow-wrap:anywhere">
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div class="post_content"><?php the_content(); wp_link_pages(); ?></div>
<?php endwhile; ?>
</main>
<?php wp_footer(); ?>
</body>
</html>

この最小構成はLPのタイトルと本文を表示し、本文を「ページ区切り」で分割した場合は番号リンクも表示します。分割していない本文には番号リンクを出しません。wp_head・wp_body_open・wp_footerも呼び出します。通常のヘッダー・フッターやSWELL標準LPの各表示設定を自動で再現するテンプレートではありません。必要なデザインはこのファイルに実装してください。

LPの編集画面で選択する

LPの編集画面を開き直し、投稿設定のテンプレートから「WAZA LPサンプル」を選択して保存します。LPメニュー自体がない場合は、SWELLでLP機能を無効にしていないか確認してください。固定ページ用ではないため、固定ページのテンプレート一覧には出ません。

テンプレート欄の位置はエディターの版で異なります。候補が出ない場合は、有効な子テーマの場所、ファイルの拡張子、先頭のTemplate NameとTemplate Post Typeを確認します。

旧コードからの移行と戻し方

以前の本記事にあった add_lp_template_meta_box・save_lp_template_meta_box・apply_lp_template と、それらのadd_action・add_filterを削除してから切り替えてください。旧保存処理にはnonce・権限・投稿タイプ・候補ファイルの検証がなく、そのまま再利用しません。変更前にファイルとデータベースをバックアップします。

戻すときは、対象LPのテンプレートを「デフォルト」に戻して保存し、表示を確認してから不要なテンプレートファイルを取り除きます。ファイルを先に消すと意図しない標準表示に切り替わることがあります。

LPテンプレートを保存して分割本文を開く

検証環境のSWELL子テーマへ掲載コードを置き、LPの編集画面でテンプレートの選択肢から「WAZA LPサンプル」を選びました。保存通知を確認して編集画面を開き直したところ、選択したテンプレートが保持されています。画面の版によっては、テンプレートのオプションを開くと選択欄が表示されます。

本文にページ区切りを入れたLPを公開表示し、PC幅1280pxで1ページ目の本文と番号を確認しました。スマホ幅390pxでは番号「2」をEnterで開くと2ページ目の本文になり、「1」から元の本文へ戻れました。別の検証LPの本文とテンプレート指定が変更されていないことも確認しています。

番号だけを確認せず、各ページの本文が切り替わることまで比べてください。保存したのに通常のLP表示になる場合は、選択欄の値と、有効な子テーマにあるtemplate-waza-lp.phpを確認します。これは標準LPのデザイン設定をすべて引き継ぐ例ではありません。フォームや外部サービスを本文へ追加した場合は、その機能を別に検証してください。

保存したLPテンプレートで本文とページ番号を表示した実画面
保存したLPテンプレートのスマホ実画面。1ページ目の本文と、2ページ目への番号リンクを表示しています。

公開前に確認すること

プレビューでタイトル・本文・画像・リンクを確認し、PCとスマホで横はみ出しがないか、Tabでリンクやフォームへ移動できるか確認します。本文を分割したLPでは、番号リンクのEnter操作で2ページ目を表示し、1ページ目へ戻れることも確認します。テンプレート変更の対象は選択したLPです。他のLPがデフォルトのままであることも確認してください。

仕様の根拠:WordPress公式の投稿タイプ別テンプレート。本記事の旧スクリーンショットは独自選択欄のため、今回の標準機能の手順から外しました。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

記事のコードをそのまま使うのが不安な場合や、サイトに合わせた調整が必要な場合は当社が実装します。1時間 ¥8,000〜(税込)。テーマ更新に強い書き方で納品します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次