ВОПРОС
До этого я уже задавал подобный вопрос – для своего сайта я разрабатывал собственный контент-фильтр. Тогда мне помогли, и все получилось просто отлично. В моей нынешней ситуации то решение уже не помогает. Сейчас проблема заключается в том, что задача усложнилась и то решение, которое я использовал раньше, уже не дает той эффективности. На данный момент мой фильтр работает просто с огромным количеством полей (более 2000 заголовков и 1200 профилей). И из-за этого он работает крайне плохо и не справляется со своей задачей так, как надо.
Если говорить коротко, то мне нужно отфильтровать содержимое профилей видов и заменить их соответствующими ссылками. Профили видов состоят из информации, которая хранится в таблице wp_posts и в wp_postmeta. Их немало, поэтому я попытался вывести их с помощью этой ссылки:
<a href=”/glossary/n/native” rel=”/glossary/n/native?hover=true”>native</a>
Вернемся к сути. Вы может подсказать, как я могу сделать более эффективный фильтр, учитывая, что ему придется работать с просто огромными объемами информации? Надеюсь, что у вас есть решение. В любом случае, заранее спасибо.
ОТВЕТ
Я примерно представил, что ты хочешь сделать и расскажу тебе, какие изменения необходимо внести. В первую очередь мы отредактируем структуру базы данных. Между wp_glossary и wp_postmeta есть определенная связь, которую хранит wp_relation.
Ее суть заключается в том, что postmeta просто выделяет ключевые слова, а wp_glossary сохраняет их в таблице:
glossary_id | glossary_key | glossary_value
101 tank ……
102 species ……
103 bogwood ……
104 sand ……
105 substrate ……
wp_relation просто сохраняет эту взаимосвязь и добавляет раздел meta_id, значения которого сопоставляются со значениями из glossary_id:
glossary_id | meta_id
101 405
102 405
103 405
104 405
105 405