После решения всех проблем я застрял на очень простой проблеме в WordPress. Это постановка таблицы стилей и js-скрипта в очередь. Я отчаянно ищу решение. Я не знаю, почему это не работает. Я думаю, что следую правилам кодекса, но он все равно не загружается. Даже я открывал исходный код страницы, чтобы найти эти файлы, но не нашел. Имя файла и расположение указаны ниже:
popup_plugin
|---- assets\
|---css\
|--- styles.css
И структура js такая же, как и выше
Вот код, который я пытаюсь использовать. Я использую одноэлементный шаблон для создания экземпляра класса.
add_action( 'plugins_loaded', array(SMARTPOPUP::getInstance(), 'init') );
class SMARTPOPUP
{
private static $instance = null;
public function init(){
add_action('wp_enqueue_scripts', array($this, 'frontEndAssets'));
}
public function frontEndAssets(){
wp_enqueue_style(
'wpsgdprcss',
plugin_dir_url( __FILE__ ) . 'assets/css/styles.css',
array()
);
wp_enqueue_script(
'wpsgdprjs',
plugin_dir_url( __FILE__ ) . 'assets/js/scripts.js',
array(),
false
);
$localizedata = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'noncesecure' => wp_create_nonce(WP_SMART_GDPR_SLUG),
);
wp_localize_script( 'wpsgdprjs', 'wpsgdprdata', $localizedata );
}
public static function getInstance(){
if (!isset(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}
}
@dipmala нет! ничего
Я думал, что ваш код должен работать, поэтому я протестировал его, и он действительно работает. Я только изменил WP_SMART_GDPR_SLUG на «WP_SMART_GDPR_SLUG», поскольку вы, вероятно, забыли включить определение для него.






попробуйте ниже код
add_action( 'plugins_loaded', array(SMARTPOPUP::getInstance(), 'init') );
class SMARTPOPUP
{
private static $instance = null;
public function init(){
add_action('wp_enqueue_scripts', array($this, 'frontEndAssets'));
}
public function frontEndAssets(){
wp_enqueue_style( 'wpsgdprcss');
wp_register_script('wpsgdprcss',plugin_dir_url( __FILE__ ) . 'assets/css/styles.css',array() );
wp_register_script( 'wpsgdprjs',plugin_dir_url( __FILE__ ) . 'assets/js/scripts.js',array(),false );
wp_enqueue_script( 'wpsgdprjs');
$localizedata = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'noncesecure' => wp_create_nonce(WP_SMART_GDPR_SLUG),
);
wp_localize_script( 'wpsgdprjs', 'wpsgdprdata', $localizedata );
}
public static function getInstance(){
if (!isset(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}
}
вы можете удалить весь код из js и получить простое предупреждение в этом файле? для css вы можете удалить все css и добавить простой css в тело, а затем проверить. Я думаю, что теперь есть проблема с вашим скриптом, но не уверен
function custom_plugin_enqueue() {
wp_enqueue_style( 'wpsgdprcss', plugin_dir_url( __FILE__ ) . 'assets/css/styles.css' );
wp_enqueue_script( 'wpsgdprjs', plugin_dir_url( __FILE__ ) . 'assets/js/scripts.js' );
}
add_action('wp_enqueue_scripts', 'custom_plugin_enqueue');
Я думал, твой код должен работать, вот и протестировал. В частности, я проверил следующее:
<?php /*
Plugin Name: Junk
*/
add_action( 'plugins_loaded', array(SMARTPOPUP::getInstance(), 'init') );
class SMARTPOPUP
{
private static $instance = null;
public function init(){
add_action('wp_enqueue_scripts', array($this, 'frontEndAssets'));
}
public function frontEndAssets(){
wp_enqueue_style(
'wpsgdprcss',
plugin_dir_url( __FILE__ ) . 'assets/css/styles.css',
array()
);
wp_enqueue_script(
'wpsgdprjs',
plugin_dir_url( __FILE__ ) . 'assets/js/scripts.js',
array(),
false
);
$localizedata = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'noncesecure' => wp_create_nonce('WP_SMART_GDPR_SLUG'),
);
wp_localize_script( 'wpsgdprjs', 'wpsgdprdata', $localizedata );
}
public static function getInstance(){
if (!isset(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}
}
Это сгенерировало следующие элементы стиля и скрипта:
<link rel='stylesheet' id='wpsgdprcss-css' href='http://localhost/wp-content/plugins/junk/assets/css/styles.css?ver=4.9.6' type='text/css' media='all' />
<script type='text/javascript'>
/* <![CDATA[ */
var wpsgdprdata = {"ajaxurl":"http://localhost/wp-admin/admin-ajax.php","noncesecure":"8b77af0183"};
/* ]]> */
</script>
<script type='text/javascript' src='http://localhost/wp-content/plugins/junk/assets/js/scripts.js?ver=4.9.6'></script>
Единственное изменение, которое я сделал, это то, что я заменил WP_SMART_GDPR_SLUG на «WP_SMART_GDPR_SLUG», поскольку вы, вероятно, забыли включить определение для него.
В самом вашем коде нет ничего плохого.
Вы уверены, что ваш код выполняется?
Я не думаю, что это важно, но я использую WordPress версии 4.9.6 с использованием PHP 7.1.17.
Ваш js поставлен в очередь успешно?