2015-05-20 2 views
0

Я создаю скрипт, который получает контент и метапосты для Wordpress для приложения, делая запросы непосредственно в базе данных, потому что это быстрее, чем включение функций wp. Однако проблема заключается в том, что пост-контент сохраняется в db без форматирования. Я знаю, что я могу получить его с помощьюПолучите текстовый контент в Wordpress без включения функций Wordpress

apply_filters('the_content', $content) 

, но как я уже сказал, я хотел бы избежать функции Wp, потому что они очень медленно.

Есть ли способ «имитировать» apply_filters вручную? Есть ли лучше (быстрее) способ включить функцию Wp, кроме

require('../wp-load.php'); 

, который, кажется, очень медленно?

ответ

1

«Дешевый» метод будет включать в себя файл wp-includes/formatting.php (и, возможно, другие) и запуск вашего кода с помощью необходимых функций фильтра, таких как wpautop().

Однако это не гарантирует, что контент отформатирован как ваш блог WordPress - особенно потому, что он не будет применять изменения, внесенные плагинами. Кроме того, если новые версии WordPress вводят новые или разные фильтры, ваш код не будет работать с ними без изменений.


Я бы рекомендовал включить wp-load.php и работать с API-интерфейсом WP.

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

Например, если вы хотите, чтобы веб-сайт отображал содержимое из вашей базы данных WordPress, не тяните и не отрисовки содержимого на каждом запросе страницы. Вместо этого используйте решение для кеширования - либо одно из тех, что уже существуют для WordPress, либо одно на уровне сервера (например, Varnish), или вы даже можете реализовать свой собственный кеш, сохраняя предварительно обработанные страницы и доставляя их (полу) статически.

+0

Включая всю wp-нагрузку занимает как минимум секунду по каждому запросу моего сценария. В том числе только форматирование.php сделал трюк, ответ на страницу действительно быстрее. В любом случае, это также хорошая идея для реализации предварительно обработанных страниц, я буду учитывать это. –

+0

Спасибо, что приняли/повысили. Btw, если включить 'wp-load.php' занимает *, что * долго, что-то не так. Возможно, в блоге установлены медленные плагины. В любом случае, рад, что я мог бы помочь. – lxg

+0

Я не возражаю против этого, у веб-сайта много функциональных возможностей, и он немного замедляется, но это не будет проблемой, потому что только немногие люди будут его использовать. Важно то, что мобильное приложение, которое извлекает данные с веб-сайта, быстро, так как мы хотим, чтобы это был простой и быстрый инструмент для доступа к этим данным. Чтобы сделать его более ясным, это своего рода приложение для объявлений, сайт будет использоваться только для создания рекламы. –

Смежные вопросы