programing

WordPress 게시 텍스트 손상

closeapi 2023. 4. 1. 09:20
반응형

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 코어에 문제가 있는 것 같습니다.다른 방법을 시도해 보는 것을 추천합니다.

  1. wp_insert_post 함수를 사용하여 투고를 삽입하지만 내용이나 간단한 단어처럼 "안전한" 내용은 삽입하지 않습니다.
  2. 그런 다음 $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

반응형