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

  • Plugin
  • 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段に設定

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

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

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

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