Проблем при save_post
-
Здравейте, имам малък проблем и ще се радвам ако някой ми окаже някакво съдействие 🙂
Имам следния код:
function my_function( $post_ID, $post ) { if ( $post->post_type != 'my_post_type' ) { return; } $new_value = 1; $new_value2 = 2; update_post_meta( $post->ID, 'my_custom_meta', $new_value2 ); if ( isset( $_POST['my_meta'] ) ) { update_post_meta( $post->ID, 'my_custom_meta', $new_value ); } } add_action( 'save_post', 'my_function', 10, 2 );
my_meta e checkbox и ако е отметнато, след публикуването на публикацията има стойност 1 , която се записва в базата данни. Ако не е отметнато няма стойност.
my_custom_meta е текстово поле.Искам когато my_meta е маркирано, my_custom_meta да взема една стойност, а когато не е да взема друга стойност.
С горната функция нещата се получават но едва след като ъпдейтна публикацията от администраторския панел.Важно е да отбележа, че публикацията става през fronт-end форма и когато се маркира my_meta публикацията е със статус Draft.
-
Здрасти,
Това което можеш да направиш е да сложиш else след if-а:
if ( isset( $_POST['my_meta'] ) ) { update_post_meta( $post->ID, 'my_custom_meta', $new_value ); } else { // do my stuff here }
По този начин ако checkbox-а е чекнат ще влизаш в if–а и ще прави това което трябва да прави, ако не е чекнат $_POST[‘my_meta’] ще е празно и ще влиза в else-а, където можеш да правиш, това което искаш.
Тествай го и ми кажи дали се получва това което искаш 🙂
Здравей, благодаря за отговора 🙂
Да, бях пробвал и това .. въпреки, че то и да беше отметнат checkbox-a пак ъпдейтваше my_custom_meta все едно не е отметнат:)
Честно казано и аз не знам защо така се получаваше и единственото ми логично обяснение е, че функцията, която записва my_meta се изпълнява след моята функция…тък като след публикуването и при вече записана my_meta в базата данни, при ъпдейт на поста нещата си тръгваха… не че съм чак толкова запознат с wordpress.
Настройвах и приоритети на функцията и какво ли не и не ставаше.
Накрая намерих функцията от стотиците файлове(темата е платена и с много функции), която записва my_meta и там добавих кода ако има отметка на my_meta да ъпдейтва както искам 🙂 След това и горния ми код във function.php за контрол над my_meta и my_custom_meta при администраторска редакция.
- Темата ‘Проблем при save_post’ е затворена за нови отговори.