wp сохранине доп поля при сохранении поста

psics
На сайте с 02.04.2009
Offline
130
747

При нажатии добавить пост http://prntscr.com/8vknks - получаю

function save_book_meta( $post_id, $post, $update ) {


/*
* In production code, $slug should be set only once in the plugin,
* preferably as a class property, rather than in each function that needs it.
*/
$slug = 'book';

// If this isn't a 'book' post, don't update it.
if ( $slug != $post->post_type ) {
return;
}

// - Update the post's metadata.

if ( !isset( $_REQUEST['_yoast_wpseo_metadesc'] ) ) {
update_post_meta( $post_id, '_yoast_wpseo_metadesc', sanitize_text_field( '123') );
}


}
add_action( 'save_post', 'save_book_meta', 10, 3 );

а нужно при сохранении поста с проверкой доп поля - если пусто - ну это другой вопрос)

psics
На сайте с 02.04.2009
Offline
130
#1

За день код изменился немного

При сохранении если вместо обновления вставить wp_mail - то письмо отправляется. А доп поле не обновляется. Что за баг?

function on_post_scheduled( $post_id, $post ) {

$status_check='publish';
if ( $status_check == $post->post_status) {
update_post_meta( $post_id, '_yoast_wpseo_metadesc', '12' );
}
}
add_action( 'save_post', 'on_post_scheduled', 10, 2 );
t1mkke
На сайте с 06.09.2012
Offline
82
#2

psics, попробуйте поменять priority с 10 на 11 (или больше) в строке add_action( 'save_post', 'on_post_scheduled', 10, 2 );

Возможно при редактировании плагин SEO перезаписывает значение с формы.

psics
На сайте с 02.04.2009
Offline
130
#3

function on_post_scheduled( $post_id, $post ) {

$status_check='publish';
if ( $status_check == $post->post_status) {
update_post_meta( $post_id, '_yoast_wpseo_metadesc', '12' );
}
}
add_action( 'save_post', 'on_post_scheduled', 10, 2 );

мб еще ктото будет править

Полез в плагин, оказалось они вешали акшн на wp_insert_post - аналог save_post и я не мог перебить.

Изменил на wp_insert_post и приоритет задал 20 - все ок.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий