Как сделать автоинкрементный счетчик пользовательских типов постов в WordPress?

В WordPress автоинкрементный счетчик для пользовательских типов постов можно реализовать с помощью использования функций хука save_post и определения метаполя для хранения значения счетчика.

Вот подробное описание шагов, которые нужно предпринять:

1. Создайте пользовательский тип постов, если он еще не создан. Можно использовать функцию register_post_type для создания пользовательского типа постов. Ниже приведен пример кода:

function create_custom_post_type() {
    $args = array(
        'public' => true,
        'label'  => 'Custom Posts',
    );
    register_post_type( 'custom_post', $args );
}
add_action( 'init', 'create_custom_post_type' );

2. Определите метаполе для хранения значения счетчика. Метаполя - это специальные поля, используемые для хранения дополнительных данных к постам. Мы создадим метаполе custom_post_counter для хранения значения счетчика. Это метаполе будет связано с каждым постом нашего пользовательского типа.

function add_custom_meta_box() {
    add_meta_box(
        'custom_post_counter',
        'Custom Post Counter',
        'display_custom_meta_box',
        'custom_post',
        'normal',
        'high'
    );
}
add_action( 'add_meta_boxes', 'add_custom_meta_box' );

function display_custom_meta_box( $post ) {
    $counter_value = get_post_meta( $post->ID, 'custom_post_counter', true );
    echo '<label for="custom_post_counter">Counter Value:</label>';
    echo '<input type="number" id="custom_post_counter" name="custom_post_counter" value="' . $counter_value . '">';
}

function save_custom_meta_box( $post_id ) {
    if ( isset( $_POST['custom_post_counter'] ) ) {
        $counter_value = sanitize_text_field( $_POST['custom_post_counter'] );
        update_post_meta( $post_id, 'custom_post_counter', $counter_value );
    }
}
add_action( 'save_post', 'save_custom_meta_box' );

3. Создайте функцию, которая будет автоматически увеличивать значение счетчика каждый раз, когда пользователь создает новый пост. Мы будем использовать хук save_post для этой цели.

function auto_increment_counter( $post_id ) {
    $post_type = get_post_type( $post_id );
  
    if ( $post_type == 'custom_post' ) {
        $counter_value = (int) get_post_meta( $post_id, 'custom_post_counter', true );
        $counter_value++;
        update_post_meta( $post_id, 'custom_post_counter', $counter_value );
    }
}
add_action( 'save_post', 'auto_increment_counter' );

Теперь, каждый раз, когда пользователь создает новый пост типа "Custom Post", значение счетчика будет автоматически увеличиваться. Вы можете использовать значение счетчика в любом месте вашего сайта WordPress, используя функцию get_post_meta.

Надеюсь, это подробное объяснение помогло вам понять, как реализовать автоинкрементный счетчик пользовательских типов постов в WordPress.