WordPress 게시 텍스트 손상
어제 WordPress 4.1(Windows 7, Apache 2.4, MySQL 5.5, PHP 5.6.1, UTF8, 일반적인 설정)을 사용하여 소규모 개인 블로그를 시작했습니다.그 중 몇 개는 괜찮았지만, 두 개는 제대로 저장되지 않았습니다.
이러한 문서를 투고로 저장하려고 하면 WordPress가 새로 고쳐지고 손상된 텍스트 버전이 표시됩니다.정확한 손상: 기사 가운데가 제거되고 대신 여러 개의 가비지 문자(예: %D?)가 삽입됩니다.
WP를 현재 버전 (4.2.2)으로 업데이트하려고 했습니다.에러는 동일합니다(업데이트: 4.2.3 - 에러는 동일합니다).post - error가 아닌 page가 같아 기사를 저장하려고 했습니다.커스텀이 아닌 스탠다드 테마를 사용해 보았습니다.오차는 동일합니다.
'발행된' 기사는 다른 기사보다 긴 것 같습니다. - 5.2Kb와 7.5Kb입니다.더 작은 조각들을 구하면 어떻게 되는지 보려고 했어요.매우 짧은 조각만 저장해도 잘 작동합니다.더 긴 조각을 만들면 WP는 이 텍스트의 꼬리를 잃게 됩니다.더 긴 조각을 만들면 위와 같이 WP가 중간을 잃기 시작합니다.
현재 이 케이스를 복구하거나 디버깅하는 방법을 모르겠습니다.좋은 의견이라도 있나?
========== 추가 정보 ==========
블로그에서 이 코드를 실행하려고 했습니다.
<?php
$my_post = array(
'post_title' => 'Caption',
'post_status' => 'publish',
'post_content' => 'the very-very-long text of my article'
);
echo wp_insert_post( $my_post );
?>
실행 시, 그대로의 투고가 됩니다(이것을 어드바이스 해 주신 urka_mazurka 덕분입니다).
이 글을 WP로 편집하려고 했더니 저장 시 파손된 것 같습니다.게다가 이 PHP 파일을 WP로 편집하려고 하면(편집 테마 기능을 사용하여) 저장 시에도 파손됩니다.
===== 추가 정보 2 =====
★★★wp_posts
는 「」입니다.utf8mb4_unicode_ci
STATUS의 SHOW TABLE STATUS의 )
urka_urka ur 、 ka urkaka ur...적어도 나는 이 게시물들을 통해 게시할 수 있다wp_insert_post
답장이 없어서 현상금을 주지 못하는 게 아쉽네요
당신의 설명에 따르면 WordPress 코어에 문제가 있는 것 같습니다.다른 방법을 시도해 보는 것을 추천합니다.
- wp_insert_post 함수를 사용하여 투고를 삽입하지만 내용이나 간단한 단어처럼 "안전한" 내용은 삽입하지 않습니다.
- 그런 다음 $wpdb를 사용하여 게시물을 실제 콘텐츠로 업데이트합니다.
다음은 그 방법에 대한 간략한 설명입니다.
$my_post = array(
'post_title' => 'Caption',
'post_status' => 'publish',
'post_content' => 'dummy text'
);
//get the post id
$post_id = wp_insert_post( $my_post );
global $wpdb;
//now update the post with the real text
$wpdb->update(
$wpdb->prefix . 'posts',
array(
'post_content' => 'YOUR LONG TEXT HERE',
),
array( 'ID' => $post_id ),
array('%s'),
array('%d')
);
이것으로 원하는 결과를 얻을 수 없는 경우, 보다 비우호적인 솔루션을 시도하고 $wpdb->query를 대신 사용하지 않는 한 php config 또는 MySQL 설정에 문제가 있습니다.$wpdb->update
음음음같 뭇매하다
$big_text = "YOUR BIG TEXT HERE";
$wpdb->query(
"UPDATE $wpdb->posts
SET post_content = $big_text
WHERE ID = $post_id"
);
저희에게 알려 주십시오.
전송하는 문서에 문자 인코딩이 포함되어 있지 않은지 확인합니다.이것은 텍스트를 복사할 때 문자 인코딩 정보가 저장되므로 Microsoft Word 문서와 같은 형식화된 문서에서 내용을 복사하려고 할 때 자주 발생하는 문제입니다.
WordPress WYSIWYG 상자에는 소스 코드를 표시하는 아이콘이 있습니다.이것을 보면, 이상한 문자 인코딩을 발견할 수 있을 가능성이 있습니다.
또는 WordPress에 붙여넣기 전에 텍스트 편집기에 문서를 붙여넣고 모든 텍스트를 표준 UTF-8 인코딩으로 변환해 보십시오.
(.htaccess를 통해) mod_security를 비활성화해 본 적이 있습니까?
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
워드프레스에 긴 글을 저장하는 것과 관련된 문제나 특정 단어 때문에 저장할 수 없는 게시물에 대해 불평하는 사람들이 많습니다.왜냐하면 워드프레스가 잘 안 될 때가 있기 때문이다.mod_security
기능을 으로써 이 도 있습니다.그 중 일부는 이 기능을 비활성화함으로써 이 문제를 해결했습니다.WP 메모리 제한을 변경하여 해결한 사람도 있습니다.이 중 일부는 문제를 해결하는 데 도움이 될 수 있습니다(또는 최소한 문제를 좁히는 데에도 도움이 될 수 있습니다).
몇 가지 제안:
*Word에서 WordPress로 복사/붙이지 마십시오.
*매일 포맷되지 않은 클린 텍스트로 붙여넣기
*모르실 경우 언제든지 메모장 ++에 복사/붙여넣고 워드프레스에 복사/붙여넣을 수 있습니다.
※ 이상한 문자가 표시되는 경우는, UTF8 인코딩의 문제일 가능성이 있습니다.개발 환경에서 통합 환경으로 사이트를 부팅할 때 이 문제가 발생하곤 했습니다.이 문제를 해결하려면 메모장++에서 .sql 전체 데이터베이스를 열고 인코딩 -> UTF8 -> 저장으로 이동합니다.
"wp-config.php" 파일을 확인하여 아래에 기재된 코드가 있는지 확인해야 합니다.
define('DB_CHARSET', 'utf8');
위의 코드가 파일에 있는데도 문제가 발생할 경우 테마의 'header'에 이 코드를 추가합니다.php' 파일입니다.
투고 작성자 및 투고 유형 추가
여기서는 사용자 ID를 post_author로 전달합니다(1은 워드프레스 설치 시 처음 작성하는 사용자입니다).
$my_post = array(
'post_title' => 'Caption',
'post_status' => 'publish',
'post_type' => 'post',
'post_content' => 'the very-very-long text of my article',
'post_author' => 1,
);
드디어 해결했어요.
이 #@$@#$@#$$는 모두 php.ini의 sys_temp_dir 옵션에 철자를 잘못 입력했기 때문입니다.PHP 엔진이 임시 파일을 만드는 데 실패할 때마다 게시물의 내용은 눈에 보이는 경고 없이 이 독특한 기술로 압축되었습니다.
언급URL : https://stackoverflow.com/questions/31547469/wordpress-post-text-corruption
'programing' 카테고리의 다른 글
Socket Exception:주소가 이미 MONGODB를 사용 중입니다. (0) | 2023.04.01 |
---|---|
인터페이스 상태 및 타이프스크립트의 소품 반응 (0) | 2023.04.01 |
동위원소 - 각 범주 내 최신 게시물 표시 (0) | 2023.04.01 |
이걸 쓰면 어떻게 되는 거야?react 구성 요소에서 setState를 여러 번 사용하시겠습니까? (0) | 2023.04.01 |
AJAX 호출 및 클린 JSON이지만 구문 오류: missing; before 문 (0) | 2023.04.01 |