Соединение фильтра_состояния в wordpress

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

function test(){ $post_meta = post meta data here .... echo apply_filters('the_content', '$post_meta'); } add_filter('the_content', 'test'); 

Я получаю эту ошибку

 Fatal error: Maximum function nesting level of '100' reached 

Ошибка имеет смысл, но как я могу достичь того, что я пытаюсь сделать, любые идеи?

Solutions Collecting From Web of "Соединение фильтра_состояния в wordpress"

ОБНОВЛЕНИЕ: после того, как я сильно ударился головой о стену, вот лучший способ, с помощью которого я могу зацепиться за контент и использовать его фильтр из пользовательского обратного вызова, не попадая в бесконечный цикл.

Ответ был на удивление прост, и я чувствую себя глупо, не думая об этом раньше:

 function test($content) { remove_action('the_content', 'test'); //DISABLE THE CUSTOM ACTION $post_meta = post meta data here .... $cleaned_meta = apply_filters('the_content', $post_meta); add_action('the_content', 'test'); //REENABLE FROM WITHIN return $cleaned_meta; } add_action('the_content', 'test'); 

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

Я думаю, что вы хотите добавить свой фильтр до того, как будет the_content() . Вы, вероятно, хотите что-то подобное.

 function modify_content() { global $post; $post_meta = 'testing'; $post->post_content = $post_meta; } add_action('wp_head', 'modify_content'); 

Это позволит вам изменять содержимое сообщения и все еще запускать его через фильтры на the_content() . Хотя это будет работать только для отдельных сообщений / страниц. Вам нужно будет найти еще один крючок, если вы захотите также изменить страницы архива.