Intereting Posts
Couchbase PHP SDK: Как обнаружить отказ couchbase-соединения? PHP: Получить n-й элемент ассоциативного массива Как проверить, какой сертификат используется в связи с PHP? Как изменить динамический тег <title> в php на основе значений URL Получение местоположения с IP-адреса JQuery JSON призывает к PHP WebService всегда запускает обратный вызов «Ошибка» Разрыв UL-тега после 'n' раз в while-loop Выполните один запрос MySQL в нескольких базах данных Использование кэша APC PHP в режиме CLI с использованием dumpfiles Как я могу обработать предупреждение о функции file_get_contents () в PHP? как я могу исключить субботу и воскресенье, когда я создаю даты Дешифрование данных с помощью инструмента командной строки openssl Использование метода статического класса для * Быстро * Сортировка массива по ключевым значениям в PHP Программно определять шаблоны в наборе данных? Отключить кэширование шаблонов для разработки в OpenCart 3

Динамически отправлять сообщение WordPress

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

У меня есть одна страница темы в WP, и в одном из них есть div слева со списком сообщений на сайте и справа, div, который должен отображать содержимое кликнувшего сообщения.

Я нашел этот вопрос и просмотрел связанный учебник и был частично успешным.

Мне удалось привести контент динамически, и все, что я хочу, отображается, но кажется, что порядок задач неверен. Вот как это действует:

  1. Я нажимаю на ссылку.
  2. текущее содержание уходит.
  3. диапазон загрузки отображается корректно.
  4. ОСТОРОЖНО содержание.
  5. через 1 секунду или около того текущее содержимое заменяется новым контентом, и адресная строка не изменяется вообще.

Вот код, который у меня есть:

  • atracoes.js $ (document) .ready (function () {

    var hash = window.location.hash.substr(1); var href = $('.controle nav li a').each(function(){ var href = $(this).attr('href'); if(hash==href.substr(0,href)){ var aCarregar = hash+'.html #atr-conteudo'; $('#atr-conteudo').load(aCarregar) } }); $('.controle nav li a').click(function() { var aCarregar = $(this).attr('href')+' #atr-conteudo'; $('#atr-conteudo').hide('fast',carregarConteudo); $('#carregando').remove(); $('#atracoes').append('<span id="carregando">Carregando...</span>'); $('#carregando').fadeIn('normal'); window.location.hash = $(this).attr('href').substr(0,$(this).attr('href')); function carregarConteudo () { $('#atr-conteudo').load(aCarregar,'',mostrarNovoConteudo()); } function mostrarNovoConteudo () { $('#atr-conteudo').show('normal',esconderCarregando()); } function esconderCarregando () { $('#carregando').fadeOut('normal'); } return false; }); }); 
  • index.php (часть динамического содержимого)

     <div class="main" id="atracoes"> <div class="controle"> <nav> <?php $args = array( 'posts_per_page' => 20); $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; wp_reset_postdata();?> </nav> </div> <div id="atr-conteudo"> <?php the_post_thumbnail(); ?> <div id="atr-texto"> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div> </div> </div> 
    • single.php (часть, которую я собираю с ajax)
     <!-- article --> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <!-- post thumbnail --> <?php if ( has_post_thumbnail()) : // Check if Thumbnail exists ?> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_post_thumbnail(); // Fullsize image for the single post ?> </a> <?php endif; ?> <!-- /post thumbnail --> <div id="atr-texto"> <!-- post title --> <h1> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> </h1> <!-- /post title --> <?php the_content(); // Dynamic Content ?> <?php edit_post_link(); // Always handy to have Edit Post Links available ?> </div> </article> 

Вы вызываете функции перед тем, как передать их в jQuery для выполнения, вместо того, чтобы позволить jQuery выполнить их:

 function carregarConteudo () { $('#atr-conteudo').load(aCarregar,'',mostrarNovoConteudo); } function mostrarNovoConteudo () { $('#atr-conteudo').show('normal',esconderCarregando); } 

(Обратите внимание, что они не имеют () после имен функций)