Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Заголовок для записи из произвольного поля формы публикации и id поста
7ответ(ов) в теме
theqewk
не в сети 4 года
На сайте с 23.02.2019
Участник
Тем 2
Сообщения 14
1
23:03
Версия WP-Recall: 16.24.16

Здравствуйте. Хочу получить помощь, думаю пишу в нужную ветку. Если нет прошу сообщить куда писать.
Задача сделать заголовки постов публикуемые пользователями в виде: "текст из произвольного поля формы публикации" #IDпоста

Знаю про pre_update_postdata_rcl
Но не могу получить:
1) "текст из произвольного поля формы публикации"
2) IDпоста

Как их получить и применить в фильтре pre_update_postdata_rcl?
Чтоб заголовок был сформирован когда создается пост.

0
Preci
не в сети 3 дня
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1646
2
23:17

А надо ли редактировать заголовок при публикации? Ведь если вы так сделаете и добавите к заголовку #POST_ID то если юзер еще раз обновит запись - там еще раз добавится #POST_ID.

Посмотрите single.php в папке вашей темы и там должен быть вывод заголовка поста, что-то типо the_title() - и просто после него добавьте нужный текст

0
theqewk
не в сети 4 года
На сайте с 23.02.2019
Участник
Тем 2
Сообщения 14
3
23:34

У меня произвольные посты, они должны создаваться при публикации с определёнными заголовками. Заголовок должен содержать id поста и текст с произвольного поля заполненного клиентом. pre_update_postdata_rcl данный фильтр то что надо, но я не понимаю как получить поля и id

0
theqewk
не в сети 4 года
На сайте с 23.02.2019
Участник
Тем 2
Сообщения 14
4
23:36

Preci сказал(а)
А надо ли редактировать заголовок при публикации? Ведь если вы так сделаете и добавите к заголовку #POST_ID то если юзер еще раз обновит запись - там еще раз добавится #POST_ID.

Посмотрите single.php в папке вашей темы и там должен быть вывод заголовка поста, что-то типо the_title() - и просто после него добавьте нужный текст

Это не вариант. Заголовок пользователем не заполняется. Заголовок должен автоматически генерироваться во время создания записи

0
Preci
не в сети 3 дня
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1646
5
23:47

Я не уверен что в фильтре pre_update_postdata_rcl пост уже вставлен и у него есть ID

Возможно лучше использовать экшен

Вы не можете просматривать опубликованные ссылки

Тогда уже пост 100% в базе и экшен передаст его ID первым аргументом, и ваши кастомные поля уже то же вроде как к этому моменту вставлены, так что получайте их через get_post_meta и формируйте новый заголовок записи и обновляйте его с помощью wp_update_post

0
theqewk
не в сети 4 года
На сайте с 23.02.2019
Участник
Тем 2
Сообщения 14
6
06:42

Спасибо. Я попробую.

0
theqewk
не в сети 4 года
На сайте с 23.02.2019
Участник
Тем 2
Сообщения 14
7
10:37

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

add_filter('wp_insert_post_data', function ($data, $id) {

	if ($data['post_type'] == 'тут тип') {

		$title_id = get_the_ID();
		$title_sub = get_post_meta($title_id, 'тут произвольное поле');
		$title = $title_sub[0] . ' #' . $title_id;

		$data['post_title'] = $title;
	}

	return $data;
}, 10, 2);

0
Тема закрыта. Публикация новых сообщений запрещена.