Ben, i need help.
Пишу дополнение к плагину, но почему-то часть функций не работает, например
get_user_by или wp_insert_post. Создаю функцию в functions.php темы наподобие:
function getUserByID() {
return $user = get_user_by('id', get_current_user_id());
}
тогда работает. Функции вызываются из файла /yogasevera/wp-content/wp-recall/add-on/dop/functions/person-functions.php.
Функция wp_insert_post срабатывает из файла /yogasevera/wp-content/wp-recall/add-on/dop/index.php, но например get_user_by, так же выдает ошибку "обращение к неопределенной функции".
Пытался подключить wp-config, что бы проверить видны ли все файлы wp в плагине, не получилось, пишет no such file in directory
путь до дополнения такой: /yogasevera/wp-content/wp-recall/add-on/dop
но почему-то часть функций не работает, например
get_user_by или wp_insert_post.
значит вы их вызываете до того как они будут инициализированы, т.е. в момент подключения файлов дополнения. Указанные вами функции, да и вообще все функции ВП можно использовать только внутри своих функций, это общий вопрос по ВП, а не плагину.
dimas сказал(а)
А это нормально, то что я дополнение пишу не в /yogasevera/wp-content/plugins/wp-recall/add-on, а в /yogasevera/wp-content/wp-recall/add-on/dop.
да, нормально
Вы используете функцию? На каком хуке она висит?
Глобальная $user_ID всегда определена на init хуке.
Пока вы не покажете код целиком - говорить и гадать бессмысленно.
Прежде чем писать дополнение к плагину - советую вам посмотреть а как же сделаны другие дополнения. Они же работают?
Вы прям сказки какие-то тут рассказываете. Каков ваш уровень знаний в php? в api вордпресса?
dimas сказал(а)
Добавил такую конструкцию
а зачем и куда вы добавили такую конструкцию? Явно лишнее. Что то мне подсказывает, что вы неверно подходите к написанию дополнения, пишите исполняемый код непосредственно в файлах дополнения, а надо писать там функции.
Скиньте ссылку на архив своего допа, посмотрим что там и как.
как я понял, вся проблема находится в файле handler.php, там вы отлавливаете $_POST['send'] и чего то там делаете, но ведь этот код срабатывает в момент подключения файлов, еще до инициализации функций ядра ВП. Надо использовать хуки, например, экшн wp и в момент его срабатывания отлавливать данные из $_POST и чего то делать, например:
add_action('wp', 'my_function_name'); function my_function_name(){ if(isset($_POST['send']) == '1') { //тут пишем код } }
тогда на момент срабатывания вашего кода ядро ВП уже будет загружено и никаких проблем не возникнет.
Не секрет, конечно покажу.
Сайт-каталог о йоге по четырем направлениям.
Пользователь регистрируется, добавляет информацию. Нужно сделать 4 вкладки в wp-recall с полями формы соответствующими требованиям ТЗ. Ограничение на одну запись в категории "Персона". Возможность редактировать записей
Персона (там есть возможность выбрать)
Персона
Фото
Описание (короткое - ограничить тремя абзацами)
Интервью (возможность загрузить большой текст)
Школа (отображается из списка Школы йоги)
Начало времени преподавания (Отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал
Направление/Школа йоги
Логотип
Описание
Преподаватели (и каталога Персоны) отображаются списком
Основание школы (отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал
Йога-клуб
Город
Логотип
Описание
Время основания (Отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал
События
Год (начинаем с 12 августа 1831 года)
Месяц
Дата
Описание
Значимость (Текст, чем это было важно для йоги, обоснование в два абзаца)
10 фото
Школа (из каталога подгружается)
Персоны (из каталога подгружается)
Главы из книги
Фото
Текст
Пояснение