Итак, я работаю с Wordpress 3.x и пытаюсь создать собственное отображение контента, уже хранящегося в базе данных WP MySQL. Мне нужно проанализировать содержимое поста WP по URL-адресу mp3 в каждом, чтобы я мог использовать его в другом месте своего кода. В Wordpress есть встроенная функция get_the_content (), которая захватывает данные содержимого публикации для использования в моем коде.
Я думаю, что сократил свой код буквально до 2 строк (я пытаюсь быть максимально эффективным, так как весь этот код появляется в цикле while) плюс оператор echo для отображения данных, захваченных в массиве, созданном xpath. Кажется, проблема в том, что я продолжаю получать Неустранимая ошибка PHP: вызов функции-члена xpath () для необъектного , и вызов echo не возвращает результатов. Первая ошибка отображается в шорткоде [be-link-title-info], а затем снова с URL-адресом MP3 из ссылки.
Это заставляет меня думать, что содержание поста "грязное". Amazon Cloud вставляет «+» для каждого пробела, когда файлы загружаются, и я не могу рассчитывать на имена файлов, в которых нет пробелов, так как у меня есть команда людей, загружающая контент, поэтому я хочу иметь в виду тот факт, что некоторые могут загружать файлы с именами, которые содержат пробелы (которые впоследствии преобразуются в символы +)
Как уже упоминалось, эта ошибка возникает с шорткодом, а также с href, который я ищу, что может быть связано с использованием специальных символов? Все, что мне нужно, это MP3 URl в href и ничего более. Как я могу очистить эти данные, чтобы они правильно анализировались (если это на самом деле проблема)? Или, может быть, устранить все, что анализируется, кроме тега и его атрибута? Может кто-нибудь дать мне совет, что я делаю неправильно, пожалуйста?
Это пример того, как выглядит каждое сообщение с точки зрения формата и содержания (именно это возвращает функция get_the_content ()):
<img class="myclass" title="mytitle" src="http://www.mydomain.com/myfolder/mypic.jpg" alt="myalt" width="552" height="414" />
[be-linked-title-info]
<a title="mytitle" href="https://s3.amazonaws.com/myfolder/published/RJD2+-+SEVEN+LIGHT+YEARS+(INSTRUMENTAL).mp3">Song Name and Artist</a>
The written plain text post entry describing this music track goes here and says blah blah blah
Я использую код, который возвращает ошибку:
$xml = simplexml_load_string(get_the_content());
$list = $xml->xpath("//a[contains(@href,'mp3')]/@href");
И позже я хочу использовать это, чтобы вернуть URL, захваченный из href:
<?php $list[0]; ?>