2013-10-16 30 views
7

Ich mache ein Thema zum ersten Mal auf Thema forrest zu verkaufen. Ich habe ACF während der Entwicklung als Standard-Plugin verwendet, um sicherzustellen, dass alles funktioniert.Einschließlich ACF in functions.php (WordPress)

Ich habe fast fertig so beschlossen, meine ACF zu PHP zu exportieren und in meine functions.php Datei einzuschließen.

ich Kopieren/Einfügen der Code es mir gab in functions.php und enthalten ACF, options-page und repeater-field in einen Ordner in meinem Thema und verwiesen sie entsprechend.

Allerdings, wenn ich meine Website besuchen bekomme ich diesen Fehler:

Fatal error: Cannot redeclare class Acf in /Applications/MAMP/htdocs/omg/wp-content/themes/omg-v1/external/acf/acf.php on line 46

ich auch die aktuellen Plugin-Dateien aus dem Plugin-Ordner entfernt haben.

Irgendwelche Ideen, warum es ausflippen könnte?

Ich weiß, dass es eine Menge Code ist, aber incase jemand will, dies zu betrachten ist der Code, der in meine functions.php (das ACF mir gab)

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, 
    )); 
} 

Antwort

12

Sie müssen sicherstellen, dass Ihr schließt nicht kollidieren mit ACF selbst oder jemand anderes Plugin, das es auch verwendet.

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'); 
0

Es gibt nur vier Schritten zum ACF sind 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'); 
Verwandte Themen