Плагин WordPress Advanced Custom Fields Pro, не сохраняя интерфейс и бэкэнд

Я использую пользовательский тип сообщения с расширенными настраиваемыми полями для создания пользовательских записей сообщения. Мой таможенный пост Тип и опции добавляются с (пожалуйста, прокрутите кодовое поле, чтобы увидеть все):

add_action( 'init', 'register_cpt_campaigns' );

function register_cpt_campaigns() {

$labels = array(
'name' => __( 'Campaigns', 'campaigns' ),
'singular_name' => __( 'campaign', 'campaigns' ),
'add_new' => __( 'Add New', 'campaigns' ),
'add_new_item' => __( 'Add New Campaign', 'campaigns' ),
'edit_item' => __( 'Edit Campaign', 'campaigns' ),
'new_item' => __( 'New Campaign', 'campaigns' ),
'view_item' => __( 'View Campaign', 'campaigns' ),
'search_items' => __( 'Search Campaigns', 'campaigns' ),
'not_found' => __( 'Campaign not found', 'campaigns' ),
'not_found_in_trash' => __( 'Campaign not found', 'campaigns' ),
'parent_item_colon' => __( 'Parent campaign:', 'campaigns' ),
'menu_name' => __( 'Campaigns', 'campaigns' ),
);

$args = array(
'labels' => $labels,
'hierarchical' => false,
'description' => 'Custom post type for Discovr Campaigns',
'supports' => array( 'author','title' ),
'taxonomies' => array( 'campaign_category', 'campaign_action' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-welcome-widgets-menus',
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => false,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'post'
);

register_post_type( 'campaigns', $args );
}

И пользовательские таксономии с (пожалуйста, прокрутите кодовое поле, чтобы увидеть все):

// Register Campaign Type Taxonomy
function campaign_post_category() {

$labels = array(
'name'                       => _x( 'Campaign Types', 'Taxonomy General Name', 'text_domain' ),
'singular_name'              => _x( 'Campaign Type', 'Taxonomy Singular Name', 'text_domain' ),
'menu_name'                  => __( 'Campaign Types', 'text_domain' ),
'all_items'                  => __( 'All types', 'text_domain' ),
'parent_item'                => __( 'Parent types', 'text_domain' ),
'parent_item_colon'          => __( 'Parent types:', 'text_domain' ),
'new_item_name'              => __( 'New Campaign Type', 'text_domain' ),
'add_new_item'               => __( 'Add New Campaign Type', 'text_domain' ),
'edit_item'                  => __( 'Edit Campaign Type', 'text_domain' ),
'update_item'                => __( 'Update Campaign Type', 'text_domain' ),
'view_item'                  => __( 'View Campaign Type', 'text_domain' ),
'separate_items_with_commas' => __( 'Separate campaign types with commas', 'text_domain' ),
'add_or_remove_items'        => __( 'Add or remove campaign types', 'text_domain' ),
'choose_from_most_used'      => __( 'Choose from the most used', 'text_domain' ),
'popular_items'              => __( 'Popular campaign types', 'text_domain' ),
'search_items'               => __( 'Search campaign type', 'text_domain' ),
'not_found'                  => __( 'Not Found', 'text_domain' ),
'no_terms'                   => __( 'No campaign types', 'text_domain' ),
'items_list'                 => __( 'Campaign type list', 'text_domain' ),
'items_list_navigation'      => __( 'Campaign type list navigation', 'text_domain' ),
);
$args = array(
'labels'                     => $labels,
'hierarchical'               => true,
'public'                     => true,
'show_ui'                    => false,
'show_admin_column'          => true,
'show_in_nav_menus'          => false,
'show_tagcloud'              => false,
);
register_taxonomy( 'campaign_category', array( 'campaign_categories' ), $args );

}
add_action( 'init', 'campaign_post_category', 0 );

// Register Campaign Status Taxonomy
function campaign_post_action() {

$labels = array(
'name'                       => _x( 'Campaign Status', 'Taxonomy General Name', 'text_domain' ),
'singular_name'              => _x( 'Campaign Status', 'Taxonomy Singular Name', 'text_domain' ),
'menu_name'                  => __( 'Campaign Status', 'text_domain' ),
'all_items'                  => __( 'All Status', 'text_domain' ),
'parent_item'                => __( 'Parent Status', 'text_domain' ),
'parent_item_colon'          => __( 'Parent Status:', 'text_domain' ),
'new_item_name'              => __( 'New Campaign Status', 'text_domain' ),
'add_new_item'               => __( 'Add New Campaign Status', 'text_domain' ),
'edit_item'                  => __( 'Edit Campaign Status', 'text_domain' ),
'update_item'                => __( 'Update Campaign Status', 'text_domain' ),
'view_item'                  => __( 'View Campaign Status', 'text_domain' ),
'separate_items_with_commas' => __( 'Separate campaign status with commas', 'text_domain' ),
'add_or_remove_items'        => __( 'Add or remove campaign status', 'text_domain' ),
'choose_from_most_used'      => __( 'Choose from the most used', 'text_domain' ),
'popular_items'              => __( 'Popular campaign status', 'text_domain' ),
'search_items'               => __( 'Search campaign status', 'text_domain' ),
'not_found'                  => __( 'Not Found', 'text_domain' ),
'no_terms'                   => __( 'No campaign status', 'text_domain' ),
'items_list'                 => __( 'campaign status list', 'text_domain' ),
'items_list_navigation'      => __( 'campaign status list navigation', 'text_domain' ),
);
$args = array(
'labels'                     => $labels,
'hierarchical'               => false,
'public'                     => true,
'show_ui'                    => false,
'show_admin_column'          => true,
'show_in_nav_menus'          => false,
'show_tagcloud'              => false,
);
register_taxonomy( 'campaign_action', array( 'campaign_actions' ), $args );

}

add_action( 'init', 'campaign_post_action', 0 );

У меня также есть некоторые функции, которые добавлены в тему для поддержки моей функциональности post-type, Я удалил их, чтобы исправить мою проблему, но ничего не исправил.

// Add Default Campaign Status
function set_default_campaign_status( $post_id, $post ) {
if ( 'publish' === $post->post_status && $post->post_type === 'campaigns' ) {
$defaults = array(
'campaign_action' => array( 'Draft' )
);
$taxonomies = get_object_taxonomies( $post->post_type );
foreach ( (array) $taxonomies as $taxonomy ) {
$terms = wp_get_post_terms( $post_id, $taxonomy );
if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
}
}
}
}
add_action( 'save_post', 'set_default_campaign_status', 0, 2 );

// Add Default Campaign Type

function set_default_campaign_type( $post_id, $post ) {
if ( 'publish' === $post->post_status && $post->post_type === 'campaigns' ) {
$defaults = array(
'campaign_category' => array( 'Not Selected' )
);
$taxonomies = get_object_taxonomies( $post->post_type );
foreach ( (array) $taxonomies as $taxonomy ) {
$terms = wp_get_post_terms( $post_id, $taxonomy );
if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
}
}
}
}
add_action( 'save_post', 'set_default_campaign_type', 0, 2 );

// Delete post

function delete_post(){
global $post;
$deletepostlink= add_query_arg( 'frontend', 'true', get_delete_post_link( get_the_ID() ) );
if (current_user_can('edit_post', $post->ID)) {
echo       '<a href="'.$deletepostlink.'" id=""><button class="m-t-10 m-b-10 btn btn-danger btn-cons"  type="button">Delete</button></a>';
}
}

//Redirect after delete post in frontend

add_action('trashed_post','trash_redirection_frontend');

function trash_redirection_frontend($post_id) {
if ( filter_input( INPUT_GET, 'frontend', FILTER_VALIDATE_BOOLEAN ) ) {
wp_redirect( get_option('siteurl').'/campaigns' );
exit;
}
}
// Add default Campaign Pages
function discovr_campaign_endpoints() {
add_rewrite_endpoint( 'overview', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-details', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-audience', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-page', EP_PERMALINK );
add_rewrite_endpoint( 'new-campaign-ads', EP_PERMALINK );
add_rewrite_endpoint( 'edit-campaign', EP_PERMALINK );
add_rewrite_endpoint( 'analytics', EP_PERMALINK );
}
add_action( 'init', 'discovr_campaign_endpoints' );// Update Campaign Page on Save
add_action( 'save_post', 'wpse105926_save_post_callback' );

function wpse105926_save_post_callback( $post_id ) {
// verify post is not a revision
if ( ! wp_is_post_revision( $post_id ) ) {

// unhook this function to prevent infinite looping
remove_action( 'save_post', 'wpse105926_save_post_callback' );

// update the post slug
wp_update_post( array(
'ID' => $post_id,
'post_name' => '' // do your thing here
));

// re-hook this function
add_action( 'save_post', 'wpse105926_save_post_callback' );

}
}
// Add Campaign Title Label and Instuctions
function my_acf_prepare_field( $field ) {

$field['label'] = "Campaign Title";
$field['instructions'] = "Internal use only. Ex: `Retarget Abandoned Bookings`";

return $field;

}
add_filter('acf/prepare_field/name=_post_title', 'my_acf_prepare_field');

К сожалению, каждый раз, когда я сохраняю пользовательское поле, оно возвращается к пустому или как оригинальное. Это происходит только с полями ACF, а не с такими полями, как заголовок, автор или таксономии, которые не перезаписываются с помощью ACF. Пожалуйста, смотрите следующие изображения GIF, чтобы понять дальше.

Бэкенд WordPress с постом создается и обновляется
Бэкэнд сообщения обновляется

Настройки группы пользовательских полей ACF
Настройки группы пользовательских полей ACF

Frontend Post создается
Frontend Post создается

Я попытался удалить все функциональные возможности внешнего интерфейса, но все еще не работает в бэкэнде, также удалил все плагины, кроме ACF. Нет ошибок в отладке или Firebug. Я могу только представить, что в полях есть конфликт, или АКФ не может найти подходящее место для их сохранения.

Любая помощь очень ценится, и я надеюсь, что есть кое-что простое, что я пропустил.

ОБНОВИТЬ

Это работает путем изменения field_name а также field_label что-то неясное.

Рабочая группа ACF работает
Рабочая группа ACF работает

Сохранение формы интерфейса
Сохранение формы интерфейса

Работать с этим сейчас отлично, но мне нужно field_label а также field_name чтобы соответствовать цели этих полей. Я мог бы переписать это в functions.php но это будет кошмар, так как мы потенциально можем добавить 20 полей.

3

Решение

Если вы измените field_label на то, что является целью этой кампании, а field_name на what_is_the_purpose_of_this_campaign, это не сработает.

Однако, если вы измените field_label` на какую цель этой кампании, а field_name на какую цель этой кампании, она сработает.

Кажется, что любые пробелы нарушают соединение field_label и field_name

0

Другие решения

Эта ошибка была вызвана проблемами с разрешениями для некоторых плагинов. Я загрузил через FTP как root, тогда как WordPress использовал www-data в качестве владельца файла. Я сопоставил разрешения через консоль, и это было исправлено.

Спасибо за помощь.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector