при активации плагина (шоркод) множественные ошибки
-
сам плагин работает, но активация плагина вызывает ошибку
Плагин создал 468 символов неожиданного вывода при активации. Если возникнет ошибка “headers already sent” с RSS-лентами или иные проблемы, то попробуйте деактивировать или удалить этот плагин.
плагин сохранен в UTF-8 без Бом, пустых строк, пробелов в коде нет.
Сам код по ссылке https://rextester.com/FMVT78591
-
плагин сохранен в UTF-8 без Бом, пустых строк, пробелов в коде нет.
Зато есть
<style>...</style>
, которого там не должно быть в принципе. Хочется вывести стили — используйте хуки.Юрий (@yube) так?
add_action( 'wp_enqueue_scripts', 'style_scripts' ); function style_scripts () { wp_register_style( 'my_styles', plugins_url('styles-items-shortcodes-rules.css',__FILE__ )); wp_enqueue_style( 'my_styles' ); } add_action( 'wp_enqueue_scripts', 'styles-items-shortcodes-rules.css', 30 );
Если работает, значит можно и так.
Хотя я бы использовал менее банальный хендлер, чем
my_styles
, дабы избежать возможных коллизий.Юрий (@yube)
Хотя я бы использовал менее банальный хендлер
коллизии мне не нужны, но не знаю что это такое «хендлер», пример можете дать? или где почитать
что это такое «хендлер»
my_styles
замените наjurvrn_styles
Во даже не посмотрели описания функций, которые использовали? Правильно! Настоящие программисты доки не читают 🙂
https://codex.wordpress.org/Function_Reference/wp_register_style
Parameters
$handle
(string) (required) Name of the stylesheet (which should be unique as it is used to identify the script in the whole system).my_styles — слишком банально, чтобы быть уникальным.
tuxfighter (@tuxfighter), Юрий (@yube) я не понял что это просто «наименование»…
Вы же знаете что я не программист и знания получаю по мере возникновения вопросов.
Статью почитал по ссылке. А есть более простой способ подключить стиль к php коду? например если файл с описанием стиля лежит в той же папке:<?php echo file_get_contents("/new-style.css"); return "<span id='newstyle'>Текст</span>"; ?>
и вот это «In a Plugin (outside a PHP class)» я ещё понял, а что значит «In a Plugin (inside a PHP class)» — там уже как бы плагин создается. И как его использовать?
Вы же знаете что я не программист
я вообще дизайнер, причем даже не веб.
Но что-то сразу понял о чем идет речь.Вы же знаете что я не программист
Никто не совершенен. Но коль уж взялся за гуж (сиречь код), не говори, что не дюж.
А есть более простой способ подключить стиль к php коду?
php-коду css — как корове седло.
А есть более простой способ
Да. Вывести на хуке wp_head. Так можно делать, если не волнуют зависимости и css не настолько велик, чтобы сильно изгадить html страницы.
например если файл с описанием стиля лежит в той же папке:
Да какая разница, где он лежит? Важно в какой момент вывести его (или «ссылку» на него). Собственно, и для этого тоже придуманы хуки. А если выводить годе попало, то и результат будет какой попало.
Вот это хороший пример «как попало»<?php echo file_get_contents("/new-style.css"); return "<span id='newstyle'>Текст</span>"; ?>
и, кстати, чего попало — файла из корня файловой системы, которого там быть никак не должно.
Юрий (@yube) я и пытаюсь разобраться хоть не много чтобы понимать….
Да какая разница, где он лежит? Важно в какой момент вывести его (или «ссылку» на него).
значит самый правильный вариант через
add_action( 'wp_enqueue_scripts', 'style_scripts' );......
?
и в том файле прописывать все нужные стили.
Нужно выводить в момент «подключения» шорткодазначит самый правильный вариант через
add_action( 'wp_enqueue_scripts', 'style_scripts' );......
?Самый каноничный, скажем так.
Нужно выводить в момент «подключения» шорткода
В момент подключения (add_shortcode) ничего выводить нельзя категорически, потому что этот момент наступает во время инициализации движка.
В момент вызова обработчика тоже выводить ничего не стоит, потому что этот момент приходится на работу функции the_content (или вызова фильтров ‘the_content’).
Выводить сами стили или подключать файл стилей нужно во время формирования/вывода
<head>
, ибо только там положено быть стилям.Как и многое в жизни, тут всё надо делать вовремя, не раньше и не позже.
Юрий (@yube), так неужели нужно просто в header прописать подключение стилей?
А как и где подключается основной для темы файл стилей style.css?так неужели нужно просто в header прописать подключение стилей?
ну а куда ж еще?
А как и где подключается основной для темы файл стилей style.css?
В старые добрые времена прописывали в шаблон header.php
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
Но с некоторых пор считается правильным в functions.php
wp_enqueue_style( 'twentythirteen-style', get_stylesheet_uri(), array(), '2013-07-18' );
Юрий (@yube), по подключению полностью вас понял. Но есть ли правильный способ описывать стили в самом php файле, без создания отдельного файла css? собственно из чего и возникла эта тема.
Но есть ли правильный способ описывать стили в самом php файле, без создания отдельного файла css?
Самый простой вариант:
add_action( 'wp_head', function() { ?> <style> .... </style> <?php });
- Тема «при активации плагина (шоркод) множественные ошибки» закрыта для новых ответов.