programing

워드프레스 기능 wp_insert_post 필터링 중지

jooyons 2023. 10. 2. 14:59
반응형

워드프레스 기능 wp_insert_post 필터링 중지

워드프레스에 내장된 웹사이트를 약간 변경해야 하는데 wp_insert_content 기능에 문제가 생겼습니다.이 기능은 입력을 위생화하여 일부 HTML 태그를 완전히 꺼내고(좋아요) 다른 태그의 속성을 삭제합니다.나는 이것을 끄고 싶고, 내가 어디에서나 솔루션을 추가할 수 있는 http://pp19dd.com/2010/06/unfiltered-wp_insert_post/ 에 대한 링크를 찾을 수 있습니다.

'filter' => true

게시물 입력 배열로 이동합니다.

이 기사는 2010년 기사이고, 제가 발견한 바에 따르면 2011년에 추가된 줄이 있습니다(http://web.archiveorange.com/archive/v/TDTh42SUwDEc1GFmSrvU) .다음 행은 다음과 같습니다.

unset( $postarr[ 'filter' ] );

입력을 기본값과 병합한 직후, 소독하기 전에 호출됩니다.이 행은 위의 '필터'=> true문을 취소하는 것 같습니다.실제로 줄이 있으면 소독이 되고, 줄을 빼면 없어집니다.

따라서 쉬운 해결책은 'filter' => true를 추가하고 함수의 여분의 줄을 삭제하는 것입니다.문제는 다른 기능이 어디에 쓰이는지 전혀 모르고 WP 코드로 해킹하는 것이 현명한 것인지 의문입니다.WP의 업데이트는 어쨌든 그것을 복구할 것입니다.그럼... 이 기능이 입력을 소독하는 것을 막을 다른 방법은 없을까요?

일부 다른 플러그인이 콘텐츠를 검사하려고 할 수 있습니다. 필터를 모두 제거하는 것이 유일한 옵션인 경우 다음을 시도하십시오.

remove_all_filters("content_save_pre");
$post_id = wp_insert_post($post);

다른 가능한 필터 태그는 다음과 같습니다.

  • pre_content
  • pre_post_content
  • content_pre안 되면 하나씩 시도해 보세요.

저도 콘텐츠 본문에 s가 있는 게시물을 가져오는 중입니다.해결책을 찾기위해 오전 내내 찾았고, 지금까지 그 주제에 대해 몇가지 논의가 있었습니다.

kses_remove_filters();

나에게 아무것도 해주지 않았고, 이 두 대사에 대해서도 언급하지 않았습니다.

unset( $postarr[ 'filter' ] ); // overrides 'filter' => true since 3.0 i guess
$postarr = sanitize_post($postarr, 'db');

게시물에 wp_insert_post ()를 입력합니다. php (2704번 줄의 defaults).

2874번 줄에는 또 다른 흥미로운 부분이 있습니다.

$data = apply_filters('wp_insert_post_data', $data, $postarr);

그게 우리 문제의 근원이 될 수도 있겠지만, 저 혼자서 해결하기엔 너무 초보자라서요.

정말, 정말, 정말, 도움이 절실히 필요합니다! 아, 그리고 저는 언급할 수 없습니다, 스팸 조치에 대해 죄송합니다.이 실을 열어두고 해결책을 찾고 싶습니다.

했던 것 가 제거된 , HTML 가 .
가장 방법은 한 후 이지만,합니다를 합니다.

$wpdb->update($wpdb->posts, array("post_content"=>$content->content), array("ID"=>$postid), array("%s"), array("%d"));

어쨌든

remove_all_filters("content_save_pre");

속임수를 썼군요!

언급URL : https://stackoverflow.com/questions/20424322/stop-filtering-wordpress-function-wp-insert-post

반응형