В настоящее время я установил ниже код в заголовке. php. Цель обновления пользовательского поля. Он обновляет настраиваемое поле, когда сообщение открыто браузером, и работает нормально.
Теперь мне нравится устанавливать этот код на функцию. php, и запускать его при публикации updated .
<?php if ( is_single() ) : ?>
<?php
$post_id = $post->ID;
if ( metadata_exists( 'post', $post->ID, '1aa'));
$modified = get_post_meta( $post->ID, '1aa', true );
update_post_meta($post->ID, '1aa', $modified);
?>
<?php endif; ?>
Код функции. php, кажется, незнакомые строки для меня. Ниже приведен код, который я сейчас пытаюсь написать. Было бы полезно, если бы кто-то указал, если что-то не так.
<?php
function update_custom_field( $post_id );
if ( is_single() ) :{
$post_id = $post->ID;
if ( metadata_exists( 'post', $post->ID, '1aa'));
$modified = get_post_meta( $post->ID, '1aa', true );
update_post_meta($post->ID, '1aa', $modified);
endif;}
add_action( 'post_updated', 'update_custom_field' );
?>
Иногда я вижу какое-то загадочное число 10 или 3, как показано ниже Должен ли я поставить это число тоже?
add_action( 'post_updated', 'update_custom_field', 10, 3 );
Я сделал код, следуя хорошему совету.
function add_custom_field( $post_id, $post, $update ) {
if ( is_single() && metadata_exists( 'post', $post_id, '2a' ) ) :{
$date = get_post_meta( $post_id, '2a', true );
update_post_meta($post_id, '2a', $date );}
else:{
$date = get_the_date('Y-m-d', $post_id);
add_post_meta( $post_id, '2a', '$date', true );}
endif;
}
add_action( 'save_post', 'add_custom_field', 10, 3 );
Однако этот код не влияет на настраиваемое поле '2a'. Когда я ver_dump это, он показывает дату, которую я хотел, как 2020-03-11.