Задать вопрос

Как по средствам ajax загрузить параметр get_template_part в wordpress?

Сразу скажу, что не силен в этом вопросе, но сейчас у меня ответ от wordpress происходит в файле functions.php, а я хотел бы шаблон вывода сделать отдельным файлом, но не понимаю как правильно это сделать.

Сейчас код выглядит так:
js
jQuery(function($) {
        $('body').on('click', '.portfolio-item-link', function() {
            var id_post = $(this).attr('rel'),
                ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
            $.ajax({
                type: 'POST',
                url: ajaxurl,
                data: {
                    'post_id': id_post,
                    'action': 'f711_get_post_content'
                },
                success: function(result) {
                    alert('done');
                }
            });
        });
    });


php в function.php:
add_action( 'wp_ajax_f711_get_post_content', 'f711_get_post_content_callback' );
add_action( 'wp_ajax_nopriv_f711_get_post_content', 'f711_get_post_content_callback' );

function f711_get_post_content_callback() {

    // retrieve post_id, and sanitize it to enhance security
    $post_id = intval($_POST['post_id'] );
    
    // get the post
    $thispost = get_post( $post_id, ARRAY_A );
    
    $post_thumb = get_the_post_thumbnail($post_id);
    $post_title = get_the_title($post_id);
    $post_content = apply_filters( 'the_content', get_the_content() );

    echo '
        <div class="ajax-post-content text-block">
            <div class="post-content">
                <h1 class="post-content-title">' . $post_title . '</h1>
                ' . apply_filters('the_content', get_post_field('post_content', $post_id)) . '
            </div>
        </div>
    ';
}
  • Вопрос задан
  • 204 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
alvvi
@alvvi
export default apathy;
Попробуйте функцию hm_get_tempalte_partвот отсюда
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы