I'm making a theme to sell on theme forrest for the first time. I've used ACF as a standard plugin during development to make sure everything's working.
I've almost finished so decided to export my ACF
to PHP
and include it into my functions.php
file.
I copy/pasted the code it gave me into functions.php
and included ACF
, options-page
, and repeater-field
into a folder within my theme and referenced them accordingly.
However, when I visit my site I get this error:
Fatal error: Cannot redeclare class Acf in /Applications/MAMP/htdocs/omg/wp-content/themes/omg-v1/external/acf/acf.php on line 46
I've removed the actual plugin files from the plugins folder also.
Any ideas why it might be bugging out?
I know it's a lot of code, but incase anyone wants to look this is the code that's in my functions.php
(which ACF gave me)
include_once('external/acf/acf.php' );
define( 'ACF_LITE' , true );
// Add-ons
include_once('external/acf-repeater/acf-repeater.php');
include_once('external/acf-options-page/acf-options-page.php');
if(function_exists("register_field_group"))
{
register_field_group(array (
'id' => 'acf_featured-story',
'title' => 'Featured Story',
'fields' => array (
array (
'key' => 'field_5256bd0fc7592',
'label' => 'Is this story featured?',
'name' => 'featured-story',
'type' => 'true_false',
'message' => 'Yes',
'default_value' => 0,
),
),
'location' => array (
array (
array (
'param' => 'post_type',
'operator' => '==',
'value' => 'post',
'order_no' => 0,
'group_no' => 0,
),
),
),
'options' => array (
'position' => 'side',
'layout' => 'default',
'hide_on_screen' => array (
),
),
'menu_order' => 0,
));
register_field_group(array (
'id' => 'acf_options',
'title' => 'Options',
'fields' => array (
array (
'key' => 'field_525d1b6d49043',
'label' => 'Homepage Layout (Left Column)',
'name' => 'homepage-layout-left',
'type' => 'repeater',
'instructions' => 'Select which categories you want to display on the homepage.',
'sub_fields' => array (
array (
'key' => 'field_525d1b8a49044',
'label' => 'Category',
'name' => 'category',
'type' => 'taxonomy',
'column_width' => '',
'taxonomy' => 'category',
'field_type' => 'select',
'allow_null' => 0,
'load_save_terms' => 0,
'return_format' => 'id',
'multiple' => 0,
),
array (
'key' => 'field_525d2473de72c',
'label' => 'Number of Posts',
'name' => 'number-of-posts',
'type' => 'number',
'column_width' => '',
'default_value' => 4,
'placeholder' => '',
'prepend' => '',
'append' => '',
'min' => 2,
'max' => '',
'step' => 2,
),
),
'row_min' => 1,
'row_limit' => 4,
'layout' => 'row',
'button_label' => 'Add a category',
),
array (
'key' => 'field_525d25ee91b41',
'label' => 'Homepage Layout (Sidebar)',
'name' => 'homepage-layout-sidebar',
'type' => 'repeater',
'instructions' => 'Select which categories you want to display in the sidebar.',
'sub_fields' => array (
array (
'key' => 'field_525d25ee91b42',
'label' => 'Category',
'name' => 'category',
'type' => 'taxonomy',
'column_width' => '',
'taxonomy' => 'category',
'field_type' => 'select',
'allow_null' => 0,
'load_save_terms' => 0,
'return_format' => 'id',
'multiple' => 0,
),
array (
'key' => 'field_525d25ee91b43',
'label' => 'Number of Posts',
'name' => 'number-of-posts',
'type' => 'number',
'column_width' => '',
'default_value' => 4,
'placeholder' => '',
'prepend' => '',
'append' => '',
'min' => 2,
'max' => '',
'step' => 2,
),
),
'row_min' => 1,
'row_limit' => 4,
'layout' => 'row',
'button_label' => 'Add a category',
),
array (
'key' => 'field_525d2afdf101b',
'label' => 'Newsletter (optional)',
'name' => 'newsletter',
'type' => 'repeater',
'sub_fields' => array (
array (
'key' => 'field_525d2b6612426',
'label' => 'Link',
'name' => 'link',
'type' => 'text',
'instructions' => 'If you have a newsletter, copy/paste your link in here.',
'column_width' => '',
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'formatting' => 'none',
'maxlength' => '',
),
array (
'key' => 'field_525d2bb40e332',
'label' => 'Text',
'name' => 'text',
'type' => 'textarea',
'instructions' => 'Enter your call to action for the newsletter here.',
'column_width' => '',
'default_value' => 'Subscribe!
To the OMG! newsletter!',
'placeholder' => '',
'maxlength' => 100,
'formatting' => 'br',
),
),
'row_min' => 0,
'row_limit' => 1,
'layout' => 'row',
'button_label' => 'Add Newsletter Link',
),
array (
'key' => 'field_525e8b77edf6e',
'label' => 'Advert',
'name' => 'adverts',
'type' => 'repeater',
'instructions' => 'Do you wish to display an advert in your sidebar?',
'sub_fields' => array (
array (
'key' => 'field_525e8c1e3600f',
'label' => 'Advert Image',
'name' => 'advert-img',
'type' => 'image',
'instructions' => 'Upload a 300 x 200px image for best quality / load time',
'column_width' => '',
'save_format' => 'url',
'preview_size' => 'full',
'library' => 'all',
),
array (
'key' => 'field_525e8d1699619',
'label' => 'Link',
'name' => 'ad-link',
'type' => 'text',
'column_width' => '',
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'formatting' => 'none',
'maxlength' => '',
),
),
'row_min' => 0,
'row_limit' => 1,
'layout' => 'table',
'button_label' => 'Add an Advert',
),
),
'location' => array (
array (
array (
'param' => 'options_page',
'operator' => '==',
'value' => 'acf-options',
'order_no' => 0,
'group_no' => 0,
),
),
),
'options' => array (
'position' => 'normal',
'layout' => 'no_box',
'hide_on_screen' => array (
),
),
'menu_order' => 0,
));
}
Visit Plugins > Add New. Search for “ACF Theme Code”. Activate ACF Theme Code for Advanced Custom Fields from your Plugins page. Publish, Edit or Update an ACF Field Group.
You need to make sure your includes won't collide with ACF itself or someone else's plugin that also uses it.
if( !class_exists('Acf') )
include_once('external/acf/acf.php' );
if( !class_exists('acf_repeater_plugin') )
include_once('external/acf-repeater/acf-repeater.php');
if( !class_exists('acf_options_page_plugin') )
include_once('external/acf-options-page/acf-options-page.php');
There are only Four steps to include ACF in functions.php
/***********************************************************
* Integrate ACF in theme
***********************************************************/
// 1. customize ACF path
add_filter('acf/settings/path', 'my_acf_settings_path');
function my_acf_settings_path( $path ) {
// update path
$path = get_stylesheet_directory() . '/framework/acf/';
// return
return $path;
}
// 2. customize ACF dir
add_filter('acf/settings/dir', 'my_acf_settings_dir');
function my_acf_settings_dir( $dir ) {
// update path
$dir = get_stylesheet_directory_uri() . '/framework/acf/';
// return
return $dir;
}
// 3. Hide ACF field group menu item
add_filter('acf/settings/show_admin', '__return_false');
// 4. Include ACF
include_once( get_stylesheet_directory() . '/framework/acf/acf.php' );
// including acf fields
require_once( get_template_directory() . '/framework/acf-fields.php' );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With