WordPress — это работает, но я не знаю почему

#php #jquery #wordpress

#php #jquery #wordpress

Вопрос:

Я пишу пользовательскую тему с нуля. В качестве меню я использую элемент управления jquery accordion; содержимое каждого элемента accordion загружается с помощью jquery.load(), как показано ниже:

 function accordion_show(divID, cat){
        $("#"   divID).addClass("aLoaderShow");
        $("#"   divID).load("<?php bloginfo('url') ?>/wp-content/themes/peng2/menu-content.php?q="   cat);
        $("#"   divID).show();
        $("#"   divID).removeClass("aLoaderShow");
    }
  

Я также включил mod_rewrite для получения постоянных ссылок pretty posts.

Я не могу понять, почему скрипт работает, только если я оставляю две пустые строки вверху menu-content.php .

Я имею в виду:

  <?php 
       $category = $_GET["q"];
       ...
  

это не работает. Но:

 (blank line)
(blank line) 
<?php 
       $category = $_GET["q"];
       ...
  

это работает! Это своего рода магия?

Комментарии:

1.исправьте тип <$php <?php

2. В вашей версии, которая работает, вы получаете ошибки » заголовок уже отправлен » или » не удается изменить заголовок «? Просто предположение, но если вы получаете эти сообщения, вероятная причина в том, что у вас где-то есть синтаксическая ошибка, которая не может быть достигнута, если вы добавляете эти пустые строки?

3. Каким образом это не работает без пустых строк? Не удается загрузить полностью? Отображается некорректно?

4. @roryf — Я получаю ошибку 404 в функции GET (я использую Chrome Developer Tools script inspector).

5. @Mosaul — извините, но я не могу понять ваш вопрос.

Ответ №1:

Не зная, что вы подразумеваете под «это работает», невозможно дать полный ответ.

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

Это говорит о том, что в вашем PHP-скрипте что-то не так, т. Е. он не отображает значение, которое должен. Однако, не имея возможности видеть, что делает остальная часть вашего PHP-скрипта, я не могу сказать наверняка.