Домой WordPress WordPress: Вопросы и ответы Могу ли я обновить мето поле пользователя после публикаций поста?
16ответ(ов) в теме
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
1
14:48

Могу ли я как то обновить мето поле пользователя
update_user_meta(get_current_user_id(), 'test_meta', 1);
после нажатия на кнопку публикаций?
<a href="#" onclick="rcl_publish(this); return false; id="rcl-publish-post" id="rcl-publish-post"></a>

0
Вова (Otshelnik-Fm)
не в сети 2 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
2
15:00

Здравствуйте. Тему перенес.

Ваш вопрос по вордпрессу.

У вордпресс есть хуки срабатывающие в момент публикации. Используйте их.

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
3
15:48

Можете написать какие именно а то
когда я пишу вопрос гуглу то он выдает мне все но только не то что мне нужно

0
Вова (Otshelnik-Fm)
не в сети 2 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
4
15:59

Например это:

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

гуглил так:

wordpress hook add new post

или

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

Хук публикации поста в WordPress

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
5
16:22

Ну я попробовал save_post

add_action( 'save_post', 'fun');
function fun() {
$F = get_user_meta( get_current_user_id(), 'testpole', true );
$F++;
update_user_meta(get_current_user_id(), 'testpole', $F);
}

Но я так и не понял как сделать так что бы он срабатывал только когда создается новый пост
add_action( 'save_post', 'fun' "", "", false);
function fun($post_ID, $post, $update) {
$F = get_user_meta( get_current_user_id(), 'testpole', true );
$F++;
update_user_meta(get_current_user_id(), 'testpole', $F);
}

0
Андрей CS
не в сети 16 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
6
17:00

используйте хук wp_update_post

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
7
17:11

используйте хук wp_update_post

Зачем?
Мне нужно обновить мето поле пользователя когда он создает новый пост.
wp_update_post Просто обновляет данные поста по id. Я не понимаю для чего он мне нужен в данной то ситуаций.

0
Андрей CS
не в сети 16 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
8
17:13

zeni1agent сказал(а)
Мне нужно обновить мето поле пользователя когда он создает новый пост.

вот для этого и используйте этот хук, если не понимаете как использовать хуки WP, то лучше обратитесь к специалисту

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
9
17:34

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

WP_Post Object (
	[ID]                    => 1
	[post_author]           => 1
	[post_date]             => 2010-03-26 09:27:40
	[post_date_gmt]         => 2010-03-26 05:27:40
	[post_content]          => Контент записи...
	[post_title]            => Название записи
	[post_excerpt]          => 
	[post_status]           => publish
	[comment_status]        => open
	[ping_status]           => open
	[post_password]         => 
	[post_name]             => post_name
	[to_ping]               => 
	[pinged]                => http://wp-kama.ru/dopolnitelnyie-knopki
	[post_modified]         => 2014-02-10 10:31:17
	[post_modified_gmt]     => 2014-02-10 06:31:17
	[post_content_filtered] => 
	[post_parent]           => 0
	[guid]                  => http://wp-kama.ru/post_name
	[menu_order]            => 0
	[post_type]             => post
	[post_mime_type]        => 
	[comment_count]         => 41
	[filter]                => raw
)

Я не понимаю как изменение обновления записи и действие срабатывающее только когда пост создается связаны между собой.
Можете мне пожалуйста это объяснить.

0
Вова (Otshelnik-Fm)
не в сети 2 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
10
17:39

Вопросы по работе с вордпресс и по разработке, используя его доступное api, вы можете задать волонтерам официального русскоязычного форума поддержки вордпресс

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 16 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
11
17:40

Нда, вы правы, такого и хука то нет.
Можно использовать хук save_post, но чтобы реагировать только на создание публикации, то проверяйте третий аргумент $update, он равен false, только в момент создания поста.

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
12
17:51

Можно использовать хук save_post, но чтобы реагировать только на создание публикации, то проверяйте третий аргумент $update, он равен false, только в момент создания поста.

Вот именно это мне и непонятно.

$update идет третим аргументом что вызывает трудности поскольку
$post_ID и $post должны остаться как обычно
Я перепробовал несколько способов но так и не понял как оставить $post_ID и $post по умолчанию и проверить только $update

add_action( 'save_post', 'fun', $post->ID, $post, false);
function fun($post_id, $post, $update) {
if ( !$update ) 
{
$F = get_user_meta( get_current_user_id(), 'test', true );
$F++;
update_user_meta(get_current_user_id(), 'test', $F);
}  
}

ведь функция постоянно ожидает 3 аргумента а не один.

0
Вова (Otshelnik-Fm)
не в сети 2 недели
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
13
18:08

а чем не устроило решение из 4-го комментария по 2й ссылке?

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
14
18:40

В коде оказалась опечатка и он выводил мне не то поле которое мне надо
Я все исправил

add_action( 'save_post', 'fun', 10, 3);
function fun($post_id, $post, $update) {
if (!$update ) { 
$F = get_user_meta( get_current_user_id(), 'test', true );
$F++;
update_user_meta(get_current_user_id(), 'test', $F);
}}

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

Ваш вопрос решен?

0
zeni1agent
не в сети 5 лет
На сайте с 23.09.2018
Участник
Тем 22
Сообщения 109
16
20:16

Да

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