ACF Get field value

使用ACF 提供的Function

ACF官方建議使用ACF提供的function取得欄位值,能達到最好的相容性

get_field()取得當前 post 的欄位值
the_field()顯示當前 post 的欄位值

使用WordPress 原生 function

雖然ACF有提供了很好用的方法獲取欄位值,但我實在不太喜歡被綁在某個插件下,倘若我卸載ACF,呼叫ACF的方法就必然失敗,此時我再去一個個更改我的主題,就會曠日廢時,ACF其實只是一個工具,幫助我們很快速地使用而已,而它欄位的資料結構其實就是WordPress Post的標準資結構,使用Post Meta data,所以提供了一個其他的選項,用WordPress原生的方取取值,哪天他忽然漲價,就不怕被插件綁架了。

get_post_meta() 取得指定 post 的欄位值

ACF 取得欄位值範例:

其中<h1>跟<h2>結果相同,差異在於一個使用WP原生Function,一個使用ACF的Function

<?php

/**
 * Template Name: Home Page
 */

get_header(); 

?>

<div id="primary">
	<div id="content" role="main">

		<?php while ( have_posts() ) : the_post(); ?>
			
			// ACF 建議
			<h1><?php the_field('custom_title'); ?></h1>
			
			// WordPress 原生
			<h2><?php echo get_post_meta( get_the_ID(), 'custom_title', true ); ?></h2>

			<img src="<?php the_field('hero_image'); ?>" />

			<p><?php the_content(); ?></p>

		<?php endwhile; // end of the loop. ?>

	</div><!-- #content -->
</div><!-- #primary -->

<?php get_footer(); ?>

ACF 簡碼用法:

與 the_field() 用法相同

[acf field="{$field_name}"]

取得某一post種的欄位

[acf field="{$field_name}" post_id="{$post_id}"]

參考:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料