У плагіна є 2 файли.
Один основний, а інший допоміжний, просто на php, на який надсилаються дані від іншого сайту.
Для роботи другого, потрібні 3 функції від ВП:
get_option
global $ wpdb; - для роботи з БД
wp_mail
Для того, щоб вони працювали, я написав:
Але при перевірці плагіна при додаванні в каталог, написали наступне, як ще можна підключити, щоб модератори взяли плагін?
## Calling core loading files directly
Including wp-config.php, wp-blog-header.php, wp-load.php, or pretty much any other WordPress core file that you have to call directly via an include is not a good idea and we can not approve a plugin that does so unless it has a very good reason to load the file (s). It is prone to failure since not all WordPress installs have the exact same file structure.
Usually plugins will include wp-config.php or wp-load.php in order to gain access to core WordPress functions, but there are much better ways to do this. It's best if you tie your processing functions (the ones that need but do not have access to core functions) into an action hook, such as «init» or «admin_init».
If you're trying to use it because you need to access WordPress functions outside of WordPress, we'd actually much rather you did not do that at all. Your plugin should be inside WordPress, only accessible to people who are logged in and authorized, if it needs that kind of access. Your plugin's pages should be called via the dashboard like all the other settings panels, and in that way, they'll always have access to WordPress functions.
- Тема змінена 1 рік тому користувачем lexsar777.
- Тема змінена 1 рік тому користувачем lexsar777.
- Тема змінена 1 рік тому користувачем lexsar777.
Що стосується __FILE__
Може я не так зрозумів, але написали ось що:
(Імена функцій, класів і айди - перейменував, щоб були унікальниеЮ, а про FILE не зрозумів, але там якісь приклади. Заслання. Тому використовував plugins_url)
## Generic function (and / or define) names
All plugins should have unique function names, defines, and classnames. This will prevent your plugin from conflicting with other plugins or themes.
For example, if your plugin is called «Easy Custom Post Types», then you might prefix your functions with ecpt_. Similarly a define of LICENSE would be better done as ECPT_LICENSE. You can use namespaces instead, however make sure that those also are unique. A namespace or class of 'MyPlugin' is NOT actually all that unique, you see.
This extends to anything in a define. For example ...
define ( 'PLUGIN_PATH', plugins_url (__FILE__));
That define is a global, so PLUGIN_PATH could conflict with a number of other things.
Similarly, do not use __ to prefix, as the double underscore should be reserved for WordPress itself.
А як ще тестувати?
Ось зараз в ручну до браузеру не звертався. Плагін не спрацював. Лист не прийшов. В чому справа не зрозуміло. Зате якщо руками дивитися видно, що не подобається те, що вище писав.
Ні. Повинно відправлятися движку, а не конкретному скрипту. А движок викличе функцію з скрипта. CallBack називається
А як безпосередньо відправити движку? У цього сайту є колбек. Ось інформація:
- Відповідь змінений 1 рік тому користувачем lexsar777.
- Відповідь змінений 1 рік тому користувачем lexsar777.
- Відповідь змінений 1 рік тому користувачем lexsar777.
А сторонньому сервісу в якості колбека вказати //ваш.домен/mycallback/.
p.s. Код для орієнтації, а не для копіювання.
Дякуємо. Що я зробив не так?
у файлі з функцією надсилання на перевірку, вказав наступний колбек:
$ PostQuery [# 'callback #'] = $ _SERVER [# 'SERVER_NAME #']. # '/ Mycallback #';
в основному файлі
подумав, може справа в тому, що слеша не вистачає
всерівно не спрацьовує
може mycallback - потрібно вказати шлях до файлу плагіна?
Ви впевнені, що це породжує коректний url?
всерівно не спрацьовує
Для перевірки можна симулювати звернення. Якщо немає спеціального інструменту, можна по-швидкому написати html-форму з потрібними action і параметрами, в ній тикати submit і дивитися, що викликається.
може mycallback - потрібно вказати шлях до файлу плагіна?
Файл з обробником повинен бути підключений або як плагін, або інклюд в плагіні.
Я заплутався 🙁
Напишу по пунктам, щоб всім, в т.ч. і мені зрозуміліше було, як що працює і що треба в результаті:
Є 3 файлу.
Файл1 - файл плагіна (настройка його параметрів + при збереженні посади викликається файл2)
Файл2 - виконує функцію відправки тексту з файла1 на перевірку граматики та іншого на сторонній сайт, на виході ідентифікатор, який заноситься назад через файл1 в базу даних ВП.
У файле2 вказується колбек, куди відправити результат перевірки, тобто в файл3
Файл3 - при надходженні POST запитів зі стороннього сайту, відбувається відправка результатів на пошту.
Файл3 я об'єднав з Файлом1 - як запропонували вище.
В даний час для проведення тесту взагалі його відключив. і замість нього:
Ви впевнені, що це породжує коректний url?
Файл з обробником повинен бути підключений або як плагін, або інклюд в плагіні.
На пошту всерівно ніякі звіти з результатами не приходять.
по-швидкому написати html-форму з потрібними action і параметрами, в ній тикати submit і дивитися, що викликається.
Де її створити? в якому файлі?
який стрілялки є потрібний? Які параметри прописувати і де?
Якщо я правильно зрозумів, то писати потрібно в файле2 Після чого безпосередньо його запустити
в формі написав:
після чого в браузері запускаю цей файл. І видає
Fatal error: Call to undefined function register_activation_hook () in /home/admin/web/default.domain/public_html/wp-content/plugins/myplugin/myplugin.php on line 50