[wp-trac] [WordPress Trac] #48235: get_option('activate_plugins') not return Array()

WordPress Trac noreply at wordpress.org
Mon Oct 7 15:04:51 UTC 2019


#48235: get_option('activate_plugins') not return Array()
--------------------------------+-----------------------
 Reporter:  khoipro             |       Owner:  (none)
     Type:  defect (bug)        |      Status:  closed
 Priority:  normal              |   Milestone:
Component:  Options, Meta APIs  |     Version:
 Severity:  normal              |  Resolution:  invalid
 Keywords:                      |     Focuses:  template
--------------------------------+-----------------------
Changes (by SergeyBiryukov):

 * keywords:  close =>
 * status:  new => closed
 * resolution:   => invalid
 * milestone:  Awaiting Review =>


Old description:

> **Case**
>
> When switching a default theme (Twenty Nineteen) to a custom theme (made
> by me).
>
> **The Problem**
>
> The plugin `advanced-custom-fields-pro` isn't activated so it displays an
> error.
>
> I tried to fix it without touching a database by adding
> `activate_plugin()` function.
>
> {{{#!php
> <?php
> if (!function_exists('get_field') ) {
>   activate_plugin('advanced-custom-fields-pro/acf.php');
> }
> }}}
>
> Following those documents:
>
> https://developer.wordpress.org/reference/functions/activate_plugin/
> https://developer.wordpress.org/reference/functions/get_option/
>
> **The error returns**
>
> {{#!php
> <?php
> Warning: in_array() expects parameter 2 to be array, string given in
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
> admin/includes/plugin.php on line 630 Fatal error: Uncaught Error: []
> operator not supported for strings in
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
> admin/includes/plugin.php:681 Stack trace: #0
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-content/themes
> /caruso-retail/lib/class-theme-init.php(74): activate_plugin('advanced-
> custom...') #1 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
> includes/class-wp-hook.php(286):
> Caruso_Retail_Theme->required_plugins('') #2
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-includes/class-wp-
> hook.php(310): WP_Hook->apply_filters(NULL, Array) #3
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
> includes/plugin.php(465): WP_Hook->do_action(Array) #4
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-settings.php(525):
> do_action('init') #5 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code
> /wp-config.php(38): require_once('/srv/bindings/a...') #6
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-load.php(37):
> require_once('/srv/bindings/a...') #7 /srv/bindings/abe0a5b9a447426d in
> /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
> admin/includes/plugin.php on line 681
> ?>
> }}}
>
> Debug
>
> The debug returns get_field('activate_plugins') doesn't return an Array
> as it described there (https://codex.wordpress.org/Option_Reference). It
> returns string with `i` and `s` looks like a direct query from database
> row.
>
> So I wish to know how exactly to activate a plugin correctly?

New description:

 **Case**

 When switching a default theme (Twenty Nineteen) to a custom theme (made
 by me).

 **The Problem**

 The plugin `advanced-custom-fields-pro` isn't activated so it displays an
 error.

 I tried to fix it without touching a database by adding
 `activate_plugin()` function.

 {{{#!php
 <?php
 if (!function_exists('get_field') ) {
   activate_plugin('advanced-custom-fields-pro/acf.php');
 }
 }}}

 Following those documents:

 https://developer.wordpress.org/reference/functions/activate_plugin/
 https://developer.wordpress.org/reference/functions/get_option/

 **The error returns**

 {{{#!php
 <?php
 Warning: in_array() expects parameter 2 to be array, string given in
 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
 admin/includes/plugin.php on line 630
 Fatal error: Uncaught Error: [] operator not supported for strings in
 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
 admin/includes/plugin.php:681
 Stack trace:
 #0 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-content/themes
 /caruso-retail/lib/class-theme-init.php(74): activate_plugin('advanced-
 custom...')
 #1 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-includes/class-
 wp-hook.php(286): Caruso_Retail_Theme->required_plugins('')
 #2 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-includes/class-
 wp-hook.php(310): WP_Hook->apply_filters(NULL, Array)
 #3 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
 includes/plugin.php(465): WP_Hook->do_action(Array)
 #4 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
 settings.php(525): do_action('init')
 #5 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-config.php(38):
 require_once('/srv/bindings/a...')
 #6 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-load.php(37):
 require_once('/srv/bindings/a...')
 #7 /srv/bindings/abe0a5b9a447426d in
 /srv/bindings/abe0a5b9a447426da8fb4ba7cd7f9471/code/wp-
 admin/includes/plugin.php on line 681
 ?>
 }}}

 Debug

 The debug returns get_field('activate_plugins') doesn't return an Array as
 it described there (https://codex.wordpress.org/Option_Reference). It
 returns string with `i` and `s` looks like a direct query from database
 row.

 So I wish to know how exactly to activate a plugin correctly?

--

Comment:

 > The debug returns get_field('activate_plugins') doesn't return an Array

 `get_field()` is not a WordPress core function. As noted above, please try
 the support forums.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/48235#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list