listblank
Ответы в темах
-
Форум: Проблемы и решения
Тема: Поиск и замена в the_contentПроблема оказалась с wp_list_comments, эта функция возвращает помимо html комментариев в коде еще и переносы строк \n — нужно было на выходе почистить.
Вместо str_ireplace воспользовался preg_replace — все работает.Форум: Проблемы и решения
Тема: Поиск и замена в the_contentЕсть две фукнции в functions.php
Первая:function select_words($comment, $args, $depth) { $GLOBALS['comment'] = $comment; if( get_field('comment_name', $comment) ) { $hmtl_var = get_field('comment_name', $comment); $hmtl_find = "$hmtl_var|"; echo $hmtl_find; } }
Вторая;
function short_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment; if( get_field('comment_name', $comment) ){ $comment_select = get_field('comment_name', $comment); $html_cod = "<span class='find_id' title='$comment->comment_content' data-id='$comment->comment_ID'>$comment_select</span>|"; echo $html_cod; } }
Они вызываются в следующем коде:
function replace_content($content){ $query_id = get_queried_object_id(); $comments = get_comments(array( 'status' => 'approve', 'post_id' => $query_id )); $echo_arr = wp_list_comments(array( 'style' => '', 'callback' =>'select_words', 'echo' => false, ), $comments); $echo_arr = explode("|", $echo_arr); // массив для поиска $echo_arr_exit = wp_list_comments(array( 'style' => '', 'callback' =>'short_comment', 'echo' => false, ), $comments); $echo_arr_exit = explode("|", $echo_arr_exit); // массив для замены $content = str_ireplace($echo_arr,$echo_arr_exit,$content); return $content; } add_filter('the_content','replace_content');
Почему то после выполнения этого кода изменяется только первое совпадение. Первая функция возвращает массив, если этот массив создать вручную с теми же значениями, то все выводится как надо.
Это же не проблема, раз плагины не подходят. Вам нужно создать две страницы для сайта, и два шаблона для этих страниц, в одном из них будет форма регистрации, при заполнении которой перекинет на вторую страницу, на которой будет сообщение, после чего юзера вернет туда откуда он пришел.
Только если вы сами не можете написать подобное то вам в поиск специалистов на этом форуме. Кто угодно напишет, только стимулировать надо.