ポータルサイトブログポータルサイトのプラグインはACF?Pods?

 



2024/10/29

ワードプレスの人気プラグインである「ACF(Advanced Custom Field)」の名称が「SCF(Secure Custom Field)」になりました。
突然の出来事でワードプレス界隈に不穏な空気が漂い、今後どうなるのか不透明な状況でもあるので、代替プラグインを検討している方も多いかと思われます。
この機会に以前紹介したPodsについて、ACFとの相違点を比較・検証してみましたのでご参考いただければと思います。

ACFに何が起こったの?

ACFの開発元である「WP Engine」とWordPressによる企業間争いが勃発し、
WordPress側が突如として名称を変更したというのが事のあらましです。

■WordPressとWP Engineが対立!ACFプラグイン問題で何が起きているのか?【2024年最新情報】
https://www.sqat.jp/kawaraban/32030/

弊社のポータルサイト制作におけるACF利用状況

弊社ではACFの有料版である「ACF pro」を常用しております。
ワードプレスでポータルサイトを制作する際に欠かせないツールとして重宝しています。
今回名称が変わったのは無料版であり、有料版の影響はほとんど無いものと考えております。

対抗馬としてのPods

Podsの最大魅力は無料版ACF(現SCF)では利用できない「繰り返しフィールド」が無料で利用できる点です。
また出力設定に関しても補助的な機能が付いているので、スピーディーに制作できる点が強みです。

ACFとPodsの比較・検証

今回はポータルサイトにおいて使用頻度が高いと思われる下記のフィールドの設定と出力について比較します。

1.テキストフィールド
2.繰り返しフィールド
3.リッチ エディター (WYSIWYG)
4.チェックボックス
5.投稿オブジェクト

設定画面の比較

1.テキストフィールド

こちらは特筆すべき点はありません。
どちらもシンプルな設定でフィールドが追加できます。
Podsはモーダルで項目設定画面が出るので入力はしやすくなっています。

2.繰り返しフィールド

最重要機能である繰り返しフィールドですが、
Podsの繰り返しフィールドは「Repeatable」の「Allow multiple values」にチェックを入れて設定します。
フィールドタイプで選んだフィールドが繰り返しフィールドとして設定されます。
若干ややこしい設定方法なので、戸惑う方も多いのではないかと推測できます。

出力に関してはACFの場合、サブフィールドでの管理となるため出力に関する設定工数が増えます。
Pods場合は補助機能が付いているのでシンプルに表示する場合は工数が削減できます。

3.リッチ エディター (WYSIWYG)

こちらも特筆すべき点はありません。
必要な機能はどちらも揃っています。

4.チェックボックス

チェックボックスも繰り返しフィールド同様にPodsは独自の設定方法になっています。
フィールドタイプを「Relationship」として「Relationship Options」でInput Typeをチェックボックスとします。
選択タイプを複数に変更する事も忘れずに行います。
選択肢の設定は画像を参考にしてください。

5.投稿オブジェクト

こちらに関してもPodsの設定は画面をまたぐ必要があり、やや癖のある印象があります。
投稿オブジェクトに関しては両方ともに複数選択にしていた方が管理しやすいかと思います。

出力の比較

出力については、サイトのデザインに依存する形にはなりますが、
補助機能がついているPodsの方がやや有利といった感想です。

Podsの出力補助機能について

Podsには「Pods Field Value」というブロックが用意されているので、こちらを利用すると簡単に出力ができます。
Podsテンプレート機能を利用して出力も可能ですが、こちらの機能は別の記事にて説明したいと思います。

またテーマテンプレートに直書きをする場合の説明は書き記事もご参考ください。
→ポータルサイトに使えるプラグイン・Podsの基本的な使い方

ACFの出力

ACFに関してはテーマテンプレートに設定する前提で利用するケースが多いと思います。
今回はPodsのようにブロックで管理する想定でショートコードを設定しました。

//function.phpに下記記載

function acftextinput() {
    $val = get_field('textinput');
	return $val;
}
add_shortcode('acftextinput', 'acftextinput');

function acfrepeatinput() {
    $check = get_field('repeatinput');
	$val = '<ul>';
	foreach($check as $item){
		$val .= '<li>'.$item['repeatinputtext'].'</li>';
	}
	$val .= '</ul>';
	return $val;
}

add_shortcode('acfrepeatinput', 'acfrepeatinput');

function acfwysiwyg() {
    $val = get_field('wysiwyg');
	return $val;
}
add_shortcode('acfwysiwyg', 'acfwysiwyg');

function acffile() {
    $val = get_field('file');
	// return $val;
}
add_shortcode('acffile', 'acffile');

function acfcheckbox() {
    $check = get_field('checkbox');
	$val = '<ul>';
	foreach($check as $item){
		$val .= '<li>'.$item['label'].'</li>';
	}
	$val .= '</ul>';
	return $val;
}
add_shortcode('acfcheckbox', 'acfcheckbox');

function acfpostobj() {
    $postobj = get_field('postobj');
	$val = NULL;
	foreach($postobj as $item){
		$val .= '<a href="'.$item->guid.'">'.$item->post_title.'</a>';
	}
	return $val;
}
add_shortcode('acfpostobj', 'acfpostobj');

まとめ

ACF騒動によりPodsの存在感が増してきました。
学習リスクはあるものの構造的にはACFと類似している部分もあり、代わりのプラグインとして十分に機能するのではないかと考えています。
機会があればポータルサイト制作に利用したいと思います。