在插件中包含高级自定义字段的首选方式?

时间:2014-02-11 作者:StenW

因此,我正在为一个已经使用高级自定义字段(ACF)的站点构建一个插件。我想知道在我的插件中加入ACF的最佳方式是什么?该站点已经在使用ACF,那么是否可以从插件目录中包含ACF,或者我应该再次包含ACF?

3 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

如果ACF(或任何其他插件)在站点上处于活动状态,则无需包含其文件,因为它们都包含在wordpress初始化过程中。唯一棘手的是,在包含ACF文件之前,您不知道文件和您的文件的包含顺序,因此您可能应该等待init 操作,甚至在使用之前的后续操作。

旁注:ACF为自定义字段提供GUI,但如果您只需要使用数据,最好不要依赖其API和使用get_post_meta API。这将导致更好的软件模块化,并希望有一个更易于维护的站点。

SO网友:samjco

This information has been updated!

请访问ACF的网站:https://www.advancedcustomfields.com/resources/including-acf-in-a-plugin-theme/

你只要检查一下ACF类是否存在if( !class_exists(\'acf\') ) 要检查用户是否已经安装了ACF,如果没有安装,请返回您的ACF版本以及插件或主题,设置ACF_LITE “至”;“不是”;向用户显示ACF菜单。。。

但是,如果用户决定自己安装ACF,它将按照预期覆盖插件或主题中包含的版本:)。

    // Optionally you can use below to check by plugin location:
    // if((is_plugin_active(\'advanced-custom-fields/acf.php\'))|| (is_plugin_active(\'advanced-custom-fields-pro/acf.php\'))):
        

        // Check if ACF Classes exists: 
        if(!class_exists(\'acf_pro\') || !class_exists(\'acf\')):
            
            // Define path and URL to the ACF plugin.
            define( \'MY_ACF_PATH\', get_stylesheet_directory() . \'/includes/acf/\' );
            define( \'MY_ACF_URL\', get_stylesheet_directory_uri() . \'/includes/acf/\' );
            
            // Include the ACF plugin.
            include_once( MY_ACF_PATH . \'acf.php\' );
            
            // Customize the url setting to fix incorrect asset URLs.
            add_filter(\'acf/settings/url\', \'my_acf_settings_url\');
            function my_acf_settings_url( $url ) {
                return MY_ACF_URL;
            }
            
            // (Optional) Hide the ACF admin menu item.
            add_filter(\'acf/settings/show_admin\', \'my_acf_settings_show_admin\');
            function my_acf_settings_show_admin( $show_admin ) {
                return false;
            }
            
            
       endif;
还有。使用ACF创建字段和字段组后,使用ACF的导出功能将它们导出到PHP。然后将导出的PHP包含到插件/主题中。

ACF是如此强大。我很感谢Elliott的慷慨,他甚至允许我们使用PRO制作插件!

SO网友:davemac

是我做错了,还是其他人觉得这很笨拙:http://www.advancedcustomfields.com/resources/getting-started/including-acf-in-a-plugin-theme/

因此,为了在我的插件中包含ACF并在WP admin中对用户隐藏ACF,我需要:

使用ACF设置本地站点将自定义字段导出到PHP将自定义字段PHP导入到我的插件中,还是我遗漏了什么?

结束

相关推荐

在插件中包含高级自定义字段的首选方式? - 小码农CODE - 行之有效找到问题解决它

在插件中包含高级自定义字段的首选方式?

时间:2014-02-11 作者:StenW

因此,我正在为一个已经使用高级自定义字段(ACF)的站点构建一个插件。我想知道在我的插件中加入ACF的最佳方式是什么?该站点已经在使用ACF,那么是否可以从插件目录中包含ACF,或者我应该再次包含ACF?

3 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

如果ACF(或任何其他插件)在站点上处于活动状态,则无需包含其文件,因为它们都包含在wordpress初始化过程中。唯一棘手的是,在包含ACF文件之前,您不知道文件和您的文件的包含顺序,因此您可能应该等待init 操作,甚至在使用之前的后续操作。

旁注:ACF为自定义字段提供GUI,但如果您只需要使用数据,最好不要依赖其API和使用get_post_meta API。这将导致更好的软件模块化,并希望有一个更易于维护的站点。

SO网友:samjco

This information has been updated!

请访问ACF的网站:https://www.advancedcustomfields.com/resources/including-acf-in-a-plugin-theme/

你只要检查一下ACF类是否存在if( !class_exists(\'acf\') ) 要检查用户是否已经安装了ACF,如果没有安装,请返回您的ACF版本以及插件或主题,设置ACF_LITE “至”;“不是”;向用户显示ACF菜单。。。

但是,如果用户决定自己安装ACF,它将按照预期覆盖插件或主题中包含的版本:)。

    // Optionally you can use below to check by plugin location:
    // if((is_plugin_active(\'advanced-custom-fields/acf.php\'))|| (is_plugin_active(\'advanced-custom-fields-pro/acf.php\'))):
        

        // Check if ACF Classes exists: 
        if(!class_exists(\'acf_pro\') || !class_exists(\'acf\')):
            
            // Define path and URL to the ACF plugin.
            define( \'MY_ACF_PATH\', get_stylesheet_directory() . \'/includes/acf/\' );
            define( \'MY_ACF_URL\', get_stylesheet_directory_uri() . \'/includes/acf/\' );
            
            // Include the ACF plugin.
            include_once( MY_ACF_PATH . \'acf.php\' );
            
            // Customize the url setting to fix incorrect asset URLs.
            add_filter(\'acf/settings/url\', \'my_acf_settings_url\');
            function my_acf_settings_url( $url ) {
                return MY_ACF_URL;
            }
            
            // (Optional) Hide the ACF admin menu item.
            add_filter(\'acf/settings/show_admin\', \'my_acf_settings_show_admin\');
            function my_acf_settings_show_admin( $show_admin ) {
                return false;
            }
            
            
       endif;
还有。使用ACF创建字段和字段组后,使用ACF的导出功能将它们导出到PHP。然后将导出的PHP包含到插件/主题中。

ACF是如此强大。我很感谢Elliott的慷慨,他甚至允许我们使用PRO制作插件!

SO网友:davemac

是我做错了,还是其他人觉得这很笨拙:http://www.advancedcustomfields.com/resources/getting-started/including-acf-in-a-plugin-theme/

因此,为了在我的插件中包含ACF并在WP admin中对用户隐藏ACF,我需要:

使用ACF设置本地站点将自定义字段导出到PHP将自定义字段PHP导入到我的插件中,还是我遗漏了什么?

相关推荐