Closed. This question is off-topic. It is not currently accepting answers.admin管理员组文章数量:1289881
Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.
Closed 3 years ago.
Improve this questionI am getting this error:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function _themename\Lib\Classes\Enqueue::css(), 1 passed in C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php on line 292 and at least 2 expected in C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\lib\classes\Enqueue.php:11 Stack trace: #0 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(292): _themename\Lib\Classes\Enqueue->css('') #1 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #2 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\wordpress\wp-includes\script-loader.php(2027): do_action('wp_enqueue_scri...') #4 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(292): wp_enqueue_scripts('') #5 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #6 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #7 C:\xampp\htdocs\wordpress\wp-includes\general-template.php(3009): do_action('wp_head') #8 C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\header.php(8): wp_head() #9 C:\xampp\htdocs\wordpress\wp-includes\template.php(730): require_once('C:\xampp\htdocs...') #10 C:\xampp\htdocs\wordpress\wp-includes\template.php(676): load_template('C:\xampp\htdocs...', true, Array) #11 C:\xampp\htdocs\wordpress\wp-includes\general-template.php(48): locate_template(Array, true, true, Array) #12 C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\index.php(19): get_header() #13 C:\xampp\htdocs\wordpress\wp-includes\template-loader.php(106): include('C:\xampp\htdocs...') #14 C:\xampp\htdocs\wordpress\wp-blog-header.php(19): require_once('C:\xampp\htdocs...') #15 C:\xampp\htdocs\wordpress\index.php(17): require('C:\xampp\htdocs...') #16 {main} thrown in C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\lib\classes\Enqueue.php on line 11 There has been a critical error on this website.
there's a class file in my mytheme/lib/classes/Enqueue.php:
namespace _themename\Lib\Classes;
class Enqueue {
public function __construct() {
add_action('wp_enqueue_scripts', [$this, 'css']);
add_action('wp_enqueue_scripts', [$this, 'js']);
add_action('admin_enqueue_scripts', [$this, 'admin_css']);
add_action('admin_enqueue_scripts', [$this, 'admin_js']);
}
public function css($handle, $path, $deps=[], $ver=false, $media='all') {
wp_enqueue_style($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function js($handle, $path, $deps=[], $ver=false, $media='all') {
wp_enqueue_script($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function admin_css($handle, $path, $deps=[], $var=false, $media='all') {
wp_enqueue_style($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function admin_js($handle, $path, $deps=[], $var=false, $media='all') {
wp_enqueue_script($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
}
and another file mytheme/Lib/enqueue_assets.php:
<?php
namespace _themename\Lib;
require_once get_template_directory() . '/lib/classes/Enqueue.php';
use _themename\Lib\Classes\Enqueue;;
$enqueue = new Enqueue;
$enqueue->css('_themename-stylesheet', '/dist/assets/css/bundle.css', [], 1.0, 'all');
both of the files are included in function.php by require_once. I am trying to learn object oriented php by creating a starter theme for myself. Thanks in advance.
Closed. This question is off-topic. It is not currently accepting answers.Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.
Closed 3 years ago.
Improve this questionI am getting this error:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function _themename\Lib\Classes\Enqueue::css(), 1 passed in C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php on line 292 and at least 2 expected in C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\lib\classes\Enqueue.php:11 Stack trace: #0 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(292): _themename\Lib\Classes\Enqueue->css('') #1 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #2 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\wordpress\wp-includes\script-loader.php(2027): do_action('wp_enqueue_scri...') #4 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(292): wp_enqueue_scripts('') #5 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #6 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(484): WP_Hook->do_action(Array) #7 C:\xampp\htdocs\wordpress\wp-includes\general-template.php(3009): do_action('wp_head') #8 C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\header.php(8): wp_head() #9 C:\xampp\htdocs\wordpress\wp-includes\template.php(730): require_once('C:\xampp\htdocs...') #10 C:\xampp\htdocs\wordpress\wp-includes\template.php(676): load_template('C:\xampp\htdocs...', true, Array) #11 C:\xampp\htdocs\wordpress\wp-includes\general-template.php(48): locate_template(Array, true, true, Array) #12 C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\index.php(19): get_header() #13 C:\xampp\htdocs\wordpress\wp-includes\template-loader.php(106): include('C:\xampp\htdocs...') #14 C:\xampp\htdocs\wordpress\wp-blog-header.php(19): require_once('C:\xampp\htdocs...') #15 C:\xampp\htdocs\wordpress\index.php(17): require('C:\xampp\htdocs...') #16 {main} thrown in C:\xampp\htdocs\wordpress\wp-content\themes\newtheme\lib\classes\Enqueue.php on line 11 There has been a critical error on this website.
there's a class file in my mytheme/lib/classes/Enqueue.php:
namespace _themename\Lib\Classes;
class Enqueue {
public function __construct() {
add_action('wp_enqueue_scripts', [$this, 'css']);
add_action('wp_enqueue_scripts', [$this, 'js']);
add_action('admin_enqueue_scripts', [$this, 'admin_css']);
add_action('admin_enqueue_scripts', [$this, 'admin_js']);
}
public function css($handle, $path, $deps=[], $ver=false, $media='all') {
wp_enqueue_style($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function js($handle, $path, $deps=[], $ver=false, $media='all') {
wp_enqueue_script($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function admin_css($handle, $path, $deps=[], $var=false, $media='all') {
wp_enqueue_style($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
public function admin_js($handle, $path, $deps=[], $var=false, $media='all') {
wp_enqueue_script($handle, get_template_directory_uri() . $path, $deps, $ver, $media);
}
}
and another file mytheme/Lib/enqueue_assets.php:
<?php
namespace _themename\Lib;
require_once get_template_directory() . '/lib/classes/Enqueue.php';
use _themename\Lib\Classes\Enqueue;;
$enqueue = new Enqueue;
$enqueue->css('_themename-stylesheet', '/dist/assets/css/bundle.css', [], 1.0, 'all');
both of the files are included in function.php by require_once. I am trying to learn object oriented php by creating a starter theme for myself. Thanks in advance.
Share Improve this question edited Jun 30, 2021 at 12:54 fuxia♦ 107k38 gold badges255 silver badges459 bronze badges asked Jun 30, 2021 at 3:38 sabbir ahmedsabbir ahmed 311 silver badge3 bronze badges1 Answer
Reset to default 1The error describes WordPress attempting to execute an action resulting in Enqueue::css()
receiving too few arguments (it requires at least two).
In the constructor you are hooking Enqueue::css()
to the wp_enqueue_scripts
action. When wp_enqueue_scripts
is executed, it receives no additional arguments, so it calls Enqueue::css()
with no arguments, triggering the error.
Long story short, all of your methods in the Enqueue
class appear to be intended to enqueue scripts and stylesheets - there's no reason to attach them to *_enqueue_scripts
action hooks. While functions hooked to those actions are an ideal place to enqueue scripts, hooking the functions which enqueue the scripts to them makes little sense - it is the equivalent of
add_action( 'wp_enqueue_scripts', 'wp_enqueue_script' );
The immediate solution is to remove all of the add_action()
calls from your constructor; longer-term the Enqueue
class's functionality will need to be re-assessed.
本文标签: theme developmentHow to fixUncaught ArgumentCountError Too few arguments to function
版权声明:本文标题:theme development - How to fix : Uncaught ArgumentCountError: Too few arguments to function? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741473942a2380766.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论