Сохранение пользовательского типа записи в пользовательские условия таксона ie - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу сохранить пользовательские типы записей в моих пользовательских таксономиях, но в данный момент это не работает

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

Вот моя функция. php:


function update_entry() {

    if ( check_entry_exists( $_POST[ 'aid' ] ) == 0 ) {
        $my_post = array(
            'post_title'     => wp_strip_all_tags( $_POST[ 'company' ] ),
            'post_content'   => '',
            'post_name'      => wp_strip_all_tags( $_POST[ 'company' ] ),
            'post_status'    => 'publish',
            'post_author'    => $_POST[ 'aid' ],
            'post_type'      => 'entry',
        );
        $pid     = wp_insert_post( $my_post );
        wp_set_post_terms($pid, $_POST['entry_category'], 'categorie1', 'categorie2', 'categorie3', true);

    } else {
        $my_post_update = array(
            'ID'             => get_entry_post_id( $_POST[ 'aid' ] ),
            'post_title'     => wp_strip_all_tags( $_POST[ 'company' ] ),
            'post_content'   => '',
            'post_name'      => wp_strip_all_tags( $_POST[ 'company' ] ),
            'post_status'    => 'publish',
            'post_author'    => $_POST[ 'aid' ],
            'post_type'      => 'entry',
            'tax_input' => array(
            'categorie1' => $_POST['entry_category'],
            'categorie2' => $_POST['entry_category'],
            'categorie3' => $_POST['entry_category'],
        ),
        );
        $pid = wp_update_post( $my_post_update );
        $pid = get_entry_post_id( $_POST[ 'aid' ] );
        wp_set_post_terms($pid, $_POST['entry_category'], 'categorie1', 'categorie2', 'categorie3', true);
    }

    unset( $_POST[ 'action' ] );

    foreach ( $_POST as $key => $value ) {
        update_post_meta( $pid, $key, $value );
    }
} 

А вот мой шаблон:


<?php foreach ($categories as $entry_category) {
                $option = '<input type="checkbox" name="entry_category[]" id="'.$entry_category->name.'" value="'.$entry_category->slug.'">';
                $option .= '<label for="entry_category">'.$entry_category->name.'</label>';
                echo $option;
} ?>


А вот как я регистрирую свои условия:


function create_entry_taxonomies() {

  $labels = array(
    'name' => 'Kategorien',
    'singular_name' => 'Kategorie',
    'search_items' => 'Kategorien durchsuchen',
    'all_items' => 'Alle Kategorien',
    'parent_item' => 'Hauptkategorie',
    'parent_item_colon' => 'Hauptkategorie:',
    'edit_item' => 'Kategorie bearbeiten',
    'update_item' => 'Kategorie aktualisieren',
    'add_new_item' => 'Neue Kategorie hinzufügen',
    'new_item_name' => 'Neuer Kategorie Name',
    'menu_name' => 'Kategorien',
  );

  register_taxonomy('entry_category',array('entry'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'entry_category' ),
  ));

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...