Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Часть функций вордпресс не работает в плагине
24ответ(ов) в теме
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
1
11:12
Версия WP-Recall: 16.8.5

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

0
Вова (Otshelnik-Fm)
не в сети 20 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
2
11:19

get_current_user_id если заменить на глобальную переменную $user_ID - сработает?

Вообще я ниразу в своих допах не сталкивался с тем, что ВП функции недоступны. Т.к. допы подключаются уже тогда, когда ядро ВП сформировано.

Значит вы что-то делаете неверно. Дебажте и найдете

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
3
14:37

А это нормально, то что я дополнение пишу не в /yogasevera/wp-content/plugins/wp-recall/add-on, а в /yogasevera/wp-content/wp-recall/add-on/dop. Я один раз загрузил дополнение из zip архива, и теперь просто добавляю и изменяю файлы в папке которую создал плагин

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
4
14:39

в index.php дополнения
global $user_ID;
var_dump($user_ID);
выдает NULL

Редакции сообщения
22.11.2017 14:39dimasПричина: не указано
0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
5
15:57

но почему-то часть функций не работает, например
get_user_by или wp_insert_post.

значит вы их вызываете до того как они будут инициализированы, т.е. в момент подключения файлов дополнения. Указанные вами функции, да и вообще все функции ВП можно использовать только внутри своих функций, это общий вопрос по ВП, а не плагину.

dimas сказал(а)
А это нормально, то что я дополнение пишу не в /yogasevera/wp-content/plugins/wp-recall/add-on, а в /yogasevera/wp-content/wp-recall/add-on/dop.

да, нормально

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
6
17:48

Странно, почему-то аддон не подключался к ядру. Добавил такую конструкцию require( $_SERVER['DOCUMENT_ROOT'] .'/yogasevera/wp-blog-header.php');

Редакции сообщения
22.11.2017 17:49dimasПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 20 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
7
18:00

Вы используете функцию? На каком хуке она висит?
Глобальная $user_ID всегда определена на init хуке.
Пока вы не покажете код целиком - говорить и гадать бессмысленно.

Прежде чем писать дополнение к плагину - советую вам посмотреть а как же сделаны другие дополнения. Они же работают?
Вы прям сказки какие-то тут рассказываете. Каков ваш уровень знаний в php? в api вордпресса?

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
8
18:14

dimas сказал(а)
Добавил такую конструкцию

а зачем и куда вы добавили такую конструкцию? Явно лишнее. Что то мне подсказывает, что вы неверно подходите к написанию дополнения, пишите исполняемый код непосредственно в файлах дополнения, а надо писать там функции.
Скиньте ссылку на архив своего допа, посмотрим что там и как.

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
9
18:24

Там все в разобранном виде. Второй день искал почему не работают функции.

Вы не можете просматривать опубликованные ссылки
0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
10
18:27

Андрей CS сказал(а)
пишите исполняемый код непосредственно в файлах дополнения

так и есть

0
Вова (Otshelnik-Fm)
не в сети 20 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
11
18:27

Архив 22 байта. Пустой. Вы сами его скачать пробовали?

Почему на мои вопросы выше не отвечаете? Мне уходить из темы можно? Вам не нужна помощь?

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
12
18:29

Otshelnik-Fm сказал(а)
Пустой

Перезалил

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
13
18:29

dimas сказал(а)
Там все в разобранном виде.

не понял, что вы за архив скинули, но это точно не доп к плагину, порядок оформления дополнения описан тут

Вы не можете просматривать опубликованные ссылки
0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
14
18:31

а что там, можно скрин?

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
15
18:32

Вы не можете просматривать опубликованные ссылки
0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
16
18:33

Otshelnik-Fm сказал(а)
Почему на мои вопросы выше не отвечаете?

Отвечаю. Но медленно)

0
Вова (Otshelnik-Fm)
не в сети 20 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
17
18:37

Жесть внутри. Я убежал в страхе... Не отвечайте на мои вопросы что я просил - уже все вижу

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
18
18:39

Otshelnik-Fm сказал(а)
Жесть внутри. Я убежал в страхе...

Конструктивно, локонично

0
Вова (Otshelnik-Fm)
не в сети 20 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
19
18:41

Отвечаю. Но медленно)

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
20
18:42

"Не отвечайте на мои вопросы что я просил - уже все вижу"

Ну так я стер все

Редакции сообщения
22.11.2017 18:43dimasПричина: не указано
22.11.2017 18:43dimasПричина: не указано
0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
21
18:45

как я понял, вся проблема находится в файле handler.php, там вы отлавливаете $_POST['send'] и чего то там делаете, но ведь этот код срабатывает в момент подключения файлов, еще до инициализации функций ядра ВП. Надо использовать хуки, например, экшн wp и в момент его срабатывания отлавливать данные из $_POST и чего то делать, например:

add_action('wp', 'my_function_name');
function my_function_name(){
	
	if(isset($_POST['send']) == '1') {
		 
		//тут пишем код
		
	}
	
}

тогда на момент срабатывания вашего кода ядро ВП уже будет загружено и никаких проблем не возникнет.

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
22
18:52

Понял, вас. Спасибо

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
23
18:55

а что за доп пишете если не секрет? покажите потом?

0
dimas
не в сети 6 лет
На сайте с 16.11.2017
Участник
Тем 2
Сообщения 20
24
20:42

Не секрет, конечно покажу.

Сайт-каталог о йоге по четырем направлениям.
Пользователь регистрируется, добавляет информацию. Нужно сделать 4 вкладки в wp-recall с полями формы соответствующими требованиям ТЗ. Ограничение на одну запись в категории "Персона". Возможность редактировать записей

Персона (там есть возможность выбрать)
Персона
Фото
Описание (короткое - ограничить тремя абзацами)
Интервью (возможность загрузить большой текст)
Школа (отображается из списка Школы йоги)
Начало времени преподавания (Отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал

Направление/Школа йоги
Логотип
Описание
Преподаватели (и каталога Персоны) отображаются списком
Основание школы (отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал

Йога-клуб
Город
Логотип
Описание
Время основания (Отображаются события из Каталога События)
Контакты (адрес, почта, телефон)
Ссылка на сайт
Ссылка на Фейсбук
Ссылка на Вконтакт
Ссылка на Инстаграм
Ссылка на YouTybe канал

События
Год (начинаем с 12 августа 1831 года)
Месяц
Дата
Описание
Значимость (Текст, чем это было важно для йоги, обоснование в два абзаца)
10 фото
Школа (из каталога подгружается)
Персоны (из каталога подгружается)

Главы из книги
Фото
Текст
Пояснение

Редакции сообщения
22.11.2017 20:45dimasПричина: не указано
23.11.2017 08:05dimasПричина: не указано
23.11.2017 08:06dimasПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме