Текст новости во всплывающем окне. На помощь
-
На сайте установлен плагин для открытия новости в модальном окне вместо перехода на страницу.
Плагин представляет из себя два файла — ajax-test.php и test.js
Содержимое ajax-test.php:<?php add_action( 'wp_enqueue_scripts', 'ajax_test_enqueue_scripts' ); function ajax_test_enqueue_scripts() { wp_enqueue_script( 'test', plugins_url() . '/ajax-text/test.js', array('jquery'), '1.0', true ); wp_localize_script( 'test', 'posttest', array('ajax_url' => admin_url( 'admin-ajax.php' ) )); } add_action( 'wp_ajax_nopriv_post_test_it', 'post_test_it' ); add_action( 'wp_ajax_post_test_it', 'post_test_it' ); function post_test_it() { $thisID = $_POST['post_id']; $post_test = get_post( $thisID ); $imageID = get_post_thumbnail_id( $thisID ); $imageHTML = wp_get_attachment_image( $imageID, 'full'); $arr = array( $imageHTML, $post_test->post_title, $post_test->post_content ); if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { echo json_encode( $arr ); } die(); }
Содержимое test.js:
jQuery(document).ready(function($){ $('.click-modal').click(function(e){ // Что будет происходить по клику по ссылке var post_id = $(e.target).parent().attr('id'); jQuery.ajax({ url : posttest.ajax_url, type : 'post', data : { action : 'post_test_it', post_id : post_id }, success : function( response ) { //alert(response) result_arr = eval( response ); $('.modalWindow').html('<div class="modalWindow_ContentWrapper"><div class="container clean-cornes clean-borders block-margins-top block-margins-bottom MainContent"><div class="row"><div class="col-md-11"><h1 class="clean-margins-top">' + result_arr[1] + '</h1></div><div class="col-md-1"><i class="fa fa-2x fa-close"></i></div></div><div class="row block-margins-top-15"><div class="col-md-4">' + result_arr[0] + '</div><div class="col-md-8"><p>' + result_arr[2] + '</p></div></div></div></div>' ); //'class' => 'col-md-12 clean-paddings img-responsive' $('.modalWindow img').addClass('col-md-12 clean-paddings img-responsive'); $('.modalWindow').fadeIn('fast'); } }); }); }); jQuery(function($){ $(document).mouseup(function (e){ // событие клика по веб-документу var div = $(".modalWindow"); // тут указываем класс элемента if (!div.is(e.target) && div.has(e.target).length === 0) { // если клик был не по нашему блоку, и не по его дочерним элементам div.fadeOut('slow'); // скрываем его //div.html(''); // очистка } else { var div1 = $(".fa-close"); // тут указываем класс элемента if ( div1.is(e.target) ) { div.fadeOut('slow'); } // скрываем его } }); });
В моем шаблоне (Zerif Lite) последние новости выводятся в файле latest-news.php, там я прописал код для того, чтобы ссылкам присваивался ID новости и передавался скрипту. В коде сраницы видно, что ID присваивается корректно. Но кликнув на миниатюре или заголовке новости, окно не открывается.
Помогите разобраться, в чем причина, мне не хватает знаний, чтобы найти проблему.
- Тема «Текст новости во всплывающем окне. На помощь» закрыта для новых ответов.