@yraiv

Как в carbon fields сохранить запись?

чего я хочу - мне нужно, чтоб я мог на сайт добавлять новые записи ( посты), но не через стандартный способ, а через carbon fields т.к я хочу внести поля, картинки и тд, которые для каждого поста надо будет заполнять и через него это будет делать удобно, но я что-то не так делаю и у меня не публикуются записи.
Вкладка появляется, там поля есть, писать в них могу, но после сохранения, новой записи нет
<?php
use Carbon_Fields\Container;
use Carbon_Fields\Field;

add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
    Container::make( 'theme_options', __( 'Добавление статьи', 'crb' ) )
        ->add_fields( array(
            Field::make( 'text', 'crb_text', 'Название статьи' ),
            Field::make( 'text', 'crb_additional_field1', 'Описание для SEO' ),
            Field::make( 'text', 'crb_additional_field2', 'Об статье' ),
        ) );
}

add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
    require_once( dirname( dirname( dirname( __DIR__ ) ) ) . '/vendor/autoload.php' );
    \Carbon_Fields\Carbon_Fields::boot();
}

add_action( 'carbon_fields_after_save', 'crb_after_save' );
function crb_after_save() {
    ?>
    
    <?php

    $post_id = wp_insert_post( array(
        'post_title'   => wp_strip_all_tags( carbon_get_theme_option( 'crb_text' ) ),
        'post_content' => '',
        'post_status'  => 'publish',
        'post_type'    => 'post',
    ) );

    if ( $post_id ) {
        update_post_meta( $post_id, 'additional_field1', wp_strip_all_tags( carbon_get_theme_option( 'crb_additional_field1' ) ) );
        update_post_meta( $post_id, 'additional_field2', wp_strip_all_tags( carbon_get_theme_option( 'crb_additional_field2' ) ) );
    }
}

function enqueue_custom_styles() {
    wp_enqueue_style( 'custom-style', get_template_directory_uri() . '/style.css' );

    wp_enqueue_script( 'header-script', get_template_directory_uri() . '/assets/js/header.js', array(), null, true );
}

add_action( 'wp_enqueue_scripts', 'enqueue_custom_styles' );
add_filter( 'show_admin_bar', '__return_false' );
?>
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
IvanU7n
@IvanU7n
если я правильно понял, то нужно вместо theme_options указывать post_meta: https://docs.carbonfields.net/learn/containers/usa...

ПС. карбоновые поля не использую, но знаю как делаются дополнительные поля
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы