ACFのテーブルアドオンで、テンプレートで簡単に使えるシンプルなテーブルを作成

ACFでは、画像、テキストなどのフィールドを作成することができます。今回は、テーブルアドオンをインストールして、テンプレートで簡単に使えるシンプルなテーブルを作成します。

今回のDEMOは、テンプレート内に挿入する、シンプルな価格表のテーブルです。

CSSでスタイル設定しています。SPでは、横スクロールで見れます。

ACFテーブルアドオン有効化

まず、テーブルアドオンをダウンロード、インストールします。アドオンですが、無料版です。

ダウンロードして、有効化します。設定は必要ありません。

ACF設定

次にACFの設定をします。ACFフィールドグループをクリックし、テーブルを追加したいフィールドの編集をクリックします。フィールドを追加ボタンをクリックし、Tableを選択します。編集画面に表示されるフィールドラベル、PHPに入力するフィールド名を設定します。その他はデフォルトのままにしています。

テーブルを追加したいフィールドの編集をクリック

フィールドを追加ボタンをクリックし、Tableを選択

フィールドラベルフィールド名を設定

項目設定値
フィールドタイプTable
フィールドラベルテーブル
フィールド名table_test
Table HeaderOptional
Table CaptionNo

PHP

次にPHPを設定します。テーブルを表示したい投稿のループ内に、下記のコードを入力します。尚、PHPの設定はWeb制作側の作業になります。

<?php		
	$table = get_field( 'table_test' );
		if ( ! empty ( $table ) ) {
			echo '<div class="tabletest"><table border="0">';
 			if ( ! empty( $table['caption'] ) ) {
				echo '<caption>' . $table['caption'] . '</caption>';
 			}
			if ( ! empty( $table['header'] ) ) {
 				echo '<thead>';
				echo '<tr>';
 				foreach ( $table['header'] as $th ) {
 					echo '<th>';
        			echo $th['c'];
        			echo '</th>';
      			}
      			echo '</tr>';
    			echo '</thead>';
  			}
  			echo '<tbody>';
    		foreach ( $table['body'] as $tr ) {
    	    	echo '<tr>';
      			foreach ( $tr as $td ) {
      				echo '<td>';
        			echo $td['c'];
        			echo '</td>';
      		}
      		echo '</tr>';
    	}
    	echo '</tbody>';
  		echo '</table></div>';
	}
?>	

CSS

テーブルのスタイルを設定します。今回は、SPでは、横スクロール表示にしています。ここは、デザイン次第でスタイルが変更になります。CSSの設定もWeb制作側の作業になります。

.tabletest{
	margin:auto;
	padding: 6em 3em 1em;
	overflow-x: scroll;
}

.tabletest th,td {
	padding: 0.7em;
	vertical-align: middle;
}

.tabletest table {
    border-collapse: collapse; /* セルの線を重ねる */
    width: 100%;
	min-width: 740px;
}
	
.tabletest thead th {
    width: 100px; 
    text-align: left;
	font-weight: 500;
	background: #000;
	color: #fff;
	border: none;
	border-left: solid 1px #eee;
	text-align: left ;
}

.tabletest tbody tr :first-child {
	border-left: none;
	text-align: center;
}
	
.tabletest tbody tr :nth-child(3) {
	text-align: right;
}

.tabletest tbody tr :last-child {
	border-right: none;
	text-align: right;
}

.tabletest tbody td {
   	text-align: left;  
	border-right: solid 1px #ccc; 
}

.tabletest tbody tr:nth-child(even){
   	background: #eee;  
}

@media screen and (min-width: 1250px) {
	.tabletest{
		padding: 8em 10% 1em;
		max-width: 1800px;
	}	
}

テーブル作成

ブロックエディターの編集画面で、テーブルを作成します。ACF設定をしたら、編集画面の下にテーブルフィールドが作成されます。

今回はヘッダー付きの4X7のテーブルを作成します。まず、ヘッダーを使用するのでuse table headerYesに設定します。テーブルの上に表示されているマークをクリックすると列が増えるので、4列に設定します。次に左下のマークをクリックすると、段が増えるので、7段に設定します。

use table headerYesに設定

上のマークをクリックして4列に設定

左下のマークをクリックして、7段に設定

次に、内容を入力していきます。セル内をクリックするとテキストボックスが表示されるので、内容を入力していきます。全てのテキストを入力したらテーブル完成です。タイトルなどを入力し、データを保存します。

セル内をクリックするとテキストボックスが表示されるので、内容を入力

全てのテキストを入力したらテーブル完成

以上で、今回の説明は終了です。テーブルは、ブロックエディターやプラグインでも作成できますが、テンプレートの場合は、この作成方法が便利です。スタイルをあらかじめ設定しておけば、決まった場所に、決まったデザインで表示されるので、管理者によって仕上がりのブレがないのが魅力です。

RECOMMEND

CONTACT

Webサイト作成は、是非
CXG DESIGNへご検討ください。