У меня есть плагин, который ограничивает категории, которые пользователи могут просматривать / редактировать в admin. Все отлично работает в WordPress 3.0.1, но когда я начал тестировать 3.1, я заметил, что фильтр категории, который является AJAX, позволяет обойти ограничения. Я могу отфильтровать это в 3.0.1, потому что он передается через параметры URL. Моя проблема заключается в возможности $ _GET параметра «cat» из нового запроса AJAX. Я пробовал тестирование для $ _SERVER ['HTTP_X_REQUESTED_WITH'], но он не регистрируется.
Я задал этот вопрос в списке рассылки wp-hackers, но никто не может дать мне фактический код, который помогает с моим затруднительным положением.
Чтобы исключить термины таксономии, лучший способ сделать это – использовать крючок, созданный для выполнения исключений list_terms_exclusions
. list_terms_exclusions
Получите доступные категории с помощью get_terms
(get_categories вызовы get_terms в любом случае IIRC), и сделайте свои исключения, используя крючок на list_terms_exclusions
и ваш код должен работать так, как ожидалось.
Вы можете видеть, что я ссылаюсь на строку 1040. http://core.trac.wordpress.org/browser/trunk/wp-includes/taxonomy.php
ПРИМЕЧАНИЕ. В вашем плагине нет функции обратного вызова санитарии при вызове register_setting , ваши параметры не будут надлежащим образом очищаться без одного, я настоятельно рекомендую вам объявить функцию обратного вызова и дезинформировать данные по мере необходимости (особенно если вы проходите который сохранил данные в запросах).