Plugin_dir_url(__FILE__)在ACF扩展中搜索父主题

时间:2017-06-02 作者:Emil Østervig

我编写了一个插件,它为高级自定义字段和tinyMCE编辑器添加了额外的功能。总之,简单的东西主要是一些js和css。

问题是,WP不仅在以下位置查找文件:

“/wp内容/插件/acf列/资产/js/输入。js?ver=1.0.0\'

它的实际位置,但也:

“/wp-content/themes/generatepress/resources/acf-field-column/js/input。js\'

它不仅不会在“assets”文件夹中查找js文件,还会在“acf field column”文件夹中查找js文件,而不是在“acf field columns”文件夹中查找js文件(请注意列中的“s”)。我正在使用GeneratePress的儿童主题。

我只将插件主文件中的文件排队,而且只排队一次

这是我的排队

// Add styles and js init
function acf_admin_enqueue() {
global $post;

if($post->post_type != \'acf-field-group\'):

    // enqueue jquery UI script
    wp_enqueue_script( \'jquery-ui\', plugin_dir_url(__FILE__) . \'assets/js/jquery-ui.min.js\', array(\'jquery\'), \'1.0.0\', true );

    // enqueue plugin jQuery
    wp_enqueue_script( \'pagebuilder-js\', plugin_dir_url(__FILE__) . \'assets/js/input.js\', array(\'jquery\'), \'1.0.0\', true );


    // enqueue stylesheet
    wp_enqueue_style( \'pagebuilder-styles\', plugin_dir_url(__FILE__) . \'assets/css/input.css\', array(), \'1.0.0\', false);
endif;
}

// hook in styles and js
add_action(\'acf/input/admin_head\', \'acf_admin_enqueue\');
我的子主题中没有名为“resources”的文件夹,只有generatepress父主题中有。有什么想法吗?

1 个回复
SO网友:Emil Østervig

我是个十足的傻瓜。查看了字段文件,发现以下内容:

function input_admin_enqueue_scripts()
{
    // Note: This function can be removed if not used


    // register acf scripts
    wp_register_script(\'acf-input-column\', $this->settings[\'dir\'] . \'js/input.js\', array(\'acf-input\'), $this->settings[\'version\']);
    wp_register_style(\'acf-input-column\', $this->settings[\'dir\'] . \'css/input.css\', array(\'acf-input\'), $this->settings[\'version\']);


    // scripts
    wp_enqueue_script(array(
        \'acf-input-column\',
    ));

    // styles
    wp_enqueue_style(array(
        \'acf-input-column\',
    ));

}
$设置->[\'dir\']设置为:get\\u template\\u directory\\u uri()/资源/acf字段列/\'

这就是404文件被包括在内的地方。

结束
Plugin_dir_url(__FILE__)在ACF扩展中搜索父主题 - 小码农CODE - 行之有效找到问题解决它

Plugin_dir_url(__FILE__)在ACF扩展中搜索父主题

时间:2017-06-02 作者:Emil Østervig

我编写了一个插件,它为高级自定义字段和tinyMCE编辑器添加了额外的功能。总之,简单的东西主要是一些js和css。

问题是,WP不仅在以下位置查找文件:

“/wp内容/插件/acf列/资产/js/输入。js?ver=1.0.0\'

它的实际位置,但也:

“/wp-content/themes/generatepress/resources/acf-field-column/js/input。js\'

它不仅不会在“assets”文件夹中查找js文件,还会在“acf field column”文件夹中查找js文件,而不是在“acf field columns”文件夹中查找js文件(请注意列中的“s”)。我正在使用GeneratePress的儿童主题。

我只将插件主文件中的文件排队,而且只排队一次

这是我的排队

// Add styles and js init
function acf_admin_enqueue() {
global $post;

if($post->post_type != \'acf-field-group\'):

    // enqueue jquery UI script
    wp_enqueue_script( \'jquery-ui\', plugin_dir_url(__FILE__) . \'assets/js/jquery-ui.min.js\', array(\'jquery\'), \'1.0.0\', true );

    // enqueue plugin jQuery
    wp_enqueue_script( \'pagebuilder-js\', plugin_dir_url(__FILE__) . \'assets/js/input.js\', array(\'jquery\'), \'1.0.0\', true );


    // enqueue stylesheet
    wp_enqueue_style( \'pagebuilder-styles\', plugin_dir_url(__FILE__) . \'assets/css/input.css\', array(), \'1.0.0\', false);
endif;
}

// hook in styles and js
add_action(\'acf/input/admin_head\', \'acf_admin_enqueue\');
我的子主题中没有名为“resources”的文件夹,只有generatepress父主题中有。有什么想法吗?

1 个回复
SO网友:Emil Østervig

我是个十足的傻瓜。查看了字段文件,发现以下内容:

function input_admin_enqueue_scripts()
{
    // Note: This function can be removed if not used


    // register acf scripts
    wp_register_script(\'acf-input-column\', $this->settings[\'dir\'] . \'js/input.js\', array(\'acf-input\'), $this->settings[\'version\']);
    wp_register_style(\'acf-input-column\', $this->settings[\'dir\'] . \'css/input.css\', array(\'acf-input\'), $this->settings[\'version\']);


    // scripts
    wp_enqueue_script(array(
        \'acf-input-column\',
    ));

    // styles
    wp_enqueue_style(array(
        \'acf-input-column\',
    ));

}
$设置->[\'dir\']设置为:get\\u template\\u directory\\u uri()/资源/acf字段列/\'

这就是404文件被包括在内的地方。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。