一般来说,我对wordpress和编程有点陌生。我有以下问题。
最近我遇到this article 我想在我正在研究的wordpress主题中使用这种方法。
我编写这个排队类是为了将我的样式和js排队到主题:
<?php
class Enqueue
{
private function actionEnqueueScripts($function) {
add_action(\'wp_enqueue_scripts\', function () use ($function) {
$function();
});
}
public function addStyle($handle, $src = \'\', $deps = array(), $ver = false, $media = \'all\') {
$this->actionEnqueueScripts(function () use ($handle, $src, $deps, $ver, $media) {
wp_enqueue_style($handle, $src, $deps, $ver, $media);
});
return $this;
}
}
因此,我可以在函数中添加样式。php如下所示:
require_once \'vendor/class-enqueue.php\';
$theme = new Enqueue;
$theme->addStyle(\'stylesheet-1\', get_template_directory_uri() . \'/dist/assets/css/bundle.css\', array(), time(), \'all\')
->addStyle(\'stylesheet-2\', get_template_directory_uri() . \'/dist/assets/css/bundle.css\', array(), time(), \'all\');
我的问题是:这不是有点低效吗?因为,每次我添加css文件时,它不是调用add\\u操作挂钩“wp\\u enqueue\\u scripts”吗?然而,在程序方法中,对于所有样式,我只会将此动作挂钩称为一次?没事吧?
PS:如果可以的话,是否可以向addStyle方法添加条件?像这样
$theme->(if(is_single)) addStyle(\'stylesheet-1\', get_template_directory_uri() . \'/dist/assets/css/bundle.css\', array(), time(), \'all\')
谢谢你的阅读。