Как создать подкатегорию по клику ajax wordpress? - PullRequest
0 голосов
/ 16 сентября 2018

Привет, я хочу создать категорию WordPress на AJAX. Пример у меня есть категория A и категория B.

В категории A есть 2 ребенка, а в категории B - 2 ребенка. Первый пользователь должен выбрать категорию A или категорию B, при выборе категории A опция будет изменена на дочернюю категорию A.

После выбора дочерней категории A, пользователю будет предоставлена ​​опция «великий ребенок» из категории A. Из последней опции будет перенаправлен на список выбора категории пользователя. И на последней странице мы выводим выбранную категорию пользователей. (Например, категория A, дочерняя категория A, большая дочерняя категория A)

Есть предложения?

Решение:

Извините всех, я думаю, что название не правильно. Я нашел решение здесь Отображение дочерних категорий при нажатии

Так что я просто использую jquery, чтобы скрыть и показать категорию по клику. Я надеюсь, что это поможет всем, у кого такая же проблема.

Спасибо

1 Ответ

0 голосов
/ 16 сентября 2018

В основном вам нужны две вещи: wp_insert_term и некоторые функциональные возможности AJAX .

Из последней опции будет перенаправлен в список выбранной пользователем категории пост-категории.

На этом этапе вы можете инициировать ваш запрос AJAX.Я предлагаю вам присоединить слагы термина таксономии в виде атрибута данных к ссылке:

<a class="category_selection" href="#" data-taxonomy="tax_a" data-parentterm="parent_a" data-term="term_a">Cat A</a>

Вы можете привязать функцию jQuery к событию click:

$( document ).on( 'click', 'a.category_selection', function ( e ) {
    var data = {
                action: 'category_selection',
                term: $( this ).data( 'term' ),
                parent_term : $( this ).data( 'parentterm' ),
                taxonomy = $( this ).data( 'taxonomy' ),
                nonce: my_vars.ajax_nonce
            };
    $.ajax( {
                type: 'POST',
                url: my_vars.ajaxurl,
                data: data,
                async: true,
                success: function ( response ) {

                    // Parse response
                    var returndata = JSON.parse( response );

                    $( '.container' ).html( returndata );
                }
            } );
});

Теперь вам нужна функция обратного вызова PHP, которую вы можете прикрепить к действию category_selection.В этой функции вы добавите термин в свою категорию.

add_filter( 'wp_ajax_category_selection', 'add_term' );
add_filter( 'wp_ajax_nopriv_category_selection', 'add_term' );

function add_term() {
    check_ajax_referer( 'my_ajax', 'nonce' );
    $taxonomy = filter_input( INPUT_POST, 'taxonomy', FILTER_SANITIZE_STRING );
    // Sanitize the other input variables

    $newterm = wp_insert_term( $term, $taxonomy, array( 'parent' => $parent_term ) );

    if ( ! is_wp_error( $newterm ) ) :

        echo json_encode( array( 'Success' ) );

    endif;

    echo json_encode( array( 'Failure' ) );
    exit;
}

Это должно дать вам приблизительный обзор того, как с ним можно обращаться.Это не предназначено для копирования и вставки, потому что некоторые вещи по-прежнему отсутствуют, например, создание одноразового номера AJAX или необходимого javascript-объекта my_vars.Вы можете найти необходимую информацию в статье Кодекса, на которую я ссылался выше.

...