>CMS 튜토리얼 >Word누르다 >CSV 데이터에서 프로그래밍 방식으로 WordPress 게시물을 작성합니다

CSV 데이터에서 프로그래밍 방식으로 WordPress 게시물을 작성합니다

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-02-18 09:46:09548검색

CSV 데이터에서 프로그래밍 방식으로 WordPress 게시물을 작성합니다 키 테이크 아웃

Glob (), fopen () 및 fgetcsv ()와 같은 php 함수를 사용하여 CSV 파일에서 데이터를 추출하고 WordPress Post Creation을 준비합니다. 특정 컨텐츠 요구 사항을 효율적으로 관리하기 위해 사용자 정의 게시물 유형 UI 및 고급 사용자 정의 필드와 같은 플러그인을 사용하여 사용자 정의 게시물 유형 및 필드를 구현하십시오. 익명 함수와 같은 필요한 기능을 활용하기 위해 PHP 버전 5.3 이상을 사용하여 호환성을 보장합니다. 관리자가 시작한 조치를 통해서만 스크립트를 실행하여 데이터 삽입 프로세스를 보호하고, 승인되지 않은 액세스 및 데이터 손상으로부터 보호합니다. 클리어 헤더로 CSV 파일을 구성하고 일관된 서식을 구조화하여 가져 오기 프로세스를 간소화하여 데이터 처리를 최적화합니다. 파일 권한을 확인하고 데이터 가져 오기 전후에 데이터 무결성을 검증하여 잠재적 오류를 우아하게 처리합니다.

WordPress 개발자로서, 우리는 종종 간단한 텍스트 파일, CSV 파일 또는 기존 데이터베이스에서 나온 이전에 달성 된 데이터를 포함 해야하는 프로젝트를 종종 발생시킵니다. 데이터 마이그레이션은 모든 백엔드 개발자가 직면 할 수있는 것입니다. 몇 달 전, 우리는 수많은 CSV 파일에서 거의 1,000 개의 게시물을 생성 해야하는 프로젝트가있었습니다. 이제 이것은

이 어려운 것이 아니지만이 데이터는 자체 포스트 유형 아래에 있어야했으며 해당 사용자 정의 게시물 유형은 MP3 파일에 대한 미디어 첨부 파일을 포함하여 몇 가지 사용자 정의 필드가있었습니다. > 나는 해당 주제에 대해 웹 주위에 떠 다니는 기사가 이미 있기 때문에 사용자 정의 게시물 유형 및 사용자 정의 필드를 작성하기위한 코드를 사용하지 않을 것입니다. 각 작업에 대해 사용자 정의 게시물 유형 UI 및 고급 사용자 정의 필드를 사용하고 있다고 언급하겠습니다. 제목에서 알 수 있듯이, 여기에서 우리가 다루 겠다는 것은 많은 CSV 파일 (일부 게시물이 포함 된 일부)에서 프로그래밍 방식으로 데이터를 가져온 다음 해당 데이터를 사용자 정의 게시물 유형의 WordPress 게시물로 바꾸는 것입니다. 간단한 텍스트 파일을 각 게시물에 첨부 할 것입니다.
    CSV 파일에서 필요한 모든 데이터를 얻으려면 다음과 같은 몇 가지 멋진 PHP 함수를 사용하여 다음과 같은 Glob (Globs ')와 같은 몇 가지 멋진 PHP 기능을 사용할 것입니다. 그것; Fopen ()은 내용을 읽을 수 있도록 파일을 열고 마지막으로 CSV 파일을 모든 데이터를 수용하는 멋진 연관 배열로 구문 분석합니다.

    실제로,이 기사에서 우리가 사용할 대부분의 데이터는 아마도 데이터가 여러 곳에서 흩어져있는 방식과는 달리 단일 CSV 내부에있을 것입니다. 파일. 이는 여기에 사용 된 기술이 JSON, YAML 또는 일반 텍스트 파일과 같은 다른 유형의 데이터를 사용하여 구현할 수 있도록 수행됩니다. 이 기사 전체에 대한 아이디어는이 주제에 관한 튜토리얼과 기사의 심각한 부족에서 비롯된 것입니다. 특히 사용자 정의 게시물 유형 및 사용자 정의 필드를 사용할 때. 우리의 데이터를 알아보기 를 따라 가려면이 repo에서 필요한 CSV 파일 (및이 기사에 사용 된 모든 코드)을 가져올 수 있습니다. ALLIGHY, 먼저, 먼저, 우리가 처리 할 CSV 데이터를 살펴 보겠습니다 ( '파일'열에 주목하십시오. 🎜>

    파일 제목

    컨텐츠

    첨부 파일

    더미 .CSV 일부 제목 게시물의 일부 내용 첨부 파일 1.txt dummy2.csv 일부 타이틀 2 Post 2의 일부 내용 attachment2.txt dummy3.csv 포스트 3의 일부 제목 세 번째 게시물에 대한 일부 콘텐츠 attachment3.txt dummy3.csv 일부 타이틀 4 Post 4의 일부 내용 attachment4.txt 꽤 단순합니까? 다음으로 사용할 사용자 지정 게시물 유형을 살펴 보겠습니다. Custom Post 유형 UI를 사용하여 만들었으므로 플러그인을 사용하는 경우 동일한 설정을 사용하거나 WordPress의 많은 기능으로 직접 수행 할 수 있습니다. 다음은 사용할 옵션에 대한 빠른 스크린 샷입니다 (이 기사 전체에서 사용할 슬러그 및 기타 필드를 강조 표시하므로 명심하십시오) :

    . 마지막으로, 우리가 사용할 맞춤형 필드를 살펴 보겠습니다. 사랑스러운 고급 커스텀 필드로 만들어졌습니다. 다음은 사용할 설정의 또 다른 빠른 스크린 샷입니다. 사용자 정의 필드의 ID는이 기사에 사용 된 것과 다를 수 있으므로 올바른 ID로 $ itepoint 배열을 업데이트하십시오. 이것은 필드의 실제 해시 키이거나 단순히 필드 이름 일 수 있습니다. 명확성을 위해 이름을 고수 할 것입니다. 몇 가지 전제 조건 이 기사에 사용 된 코드에는 적어도 PHP 5.3이 필요하다는 것을 언급 할 가치가 있습니다. 우리는 익명의 기능과 FGETCSV ()를 사용할 것입니다. 둘 다 5.3이 필요합니다. 따라서 꺼져서 오래된 Rickety 프로덕션 서버 (제발,하지 마십시오)에서 사용하기 전에 , 당신은 업그레이드하고 싶을 수도 있습니다. 언급해야 할 또 다른 것은 PHP의 max_execution_time에 들어 가지 않을 것이라는 점입니다. 설정은 서버마다 너무 다양 하여이 기사에서 논의 할 수 없습니다. 자세한 내용은 최대 실행 시간을 늘리는 방법에 대한 공식 PHP 문서뿐만 아니라 Stack Overflow에 대한 정보가 많이 있습니다. Nitty-Gritty 이 작업을 시작하려면 사이트의 백엔드

    내에서 스크립트를 실행하는 간단한 버튼을 만들어 봅시다. 이를 통해 코드가 관리자 만 실행되도록합니다. 그렇게하려면 WordPress 'admin_notices hook 만 사용하겠습니다. 기본적으로 게시물을 데이터베이스에 삽입 해야하는지 여부를 결정하는 데 사용할 $ _post 변수를 작성하는 것입니다.

    나는 앞에서이 기사에서 익명의 기능을 사용할 것이라고 언급했으며 (단순성을 위해, 단순성을 위해), 그 이유는 많은 기능으로 글로벌 네임 스페이스를 오염시키는 가치가 없기 때문입니다. 그것은 본질적으로 던지는 기능입니다. 폐쇄는 훌륭하고 익숙하지 않다면 읽는 것이 좋습니다. 자바 스크립트 나 루비 배경에서 온다면 집에서 바로 느낄 것입니다.

    이 모든 코드를 functions.php 파일에 넣으려면 별도의 페이지 템플릿, 숨겨진 페이지 등을 만들려면 괜찮습니다. 결국, 그것은 실제로 중요하지 않습니다. 시작하려면 다른 WordPress Hook, admin_init을 사용해 보겠습니다. 또한 $ WPDB Global도 포함하여 나중에 사용자 정의 데이터베이스 쿼리를 수행 할 수 있습니다.

    좋아, 그럼 다음에 뭐야? $ _post 변수가 존재하는지 여부를 확인하여 시작하겠습니다. 그렇지 않은 경우 기능을 종료 할 수 있습니다. 아무것도 메모리를 낭비하는 데 사용하지 않습니다. 변수가 있는지 확인하려면 $ _get 변수를 사용합니다. 이러한 유형의 변수에 익숙하지 않은 경우 여기에서 읽을 수 있습니다. 위의 확인 외에도 앞에서 언급 한 $ itepoint 배열도 정의합니다. 사용자 정의 게시물 유형 및 사용자 정의 필드 ID가 포함됩니다.

    이 기사의 코드 내에서 //를 사용할 때마다 우리가 다룬 마지막 코드 블록의 연속입니다. 이 기사의 대부분의 코드는 위에서 방금 만든 Admin_init 조치의 폐쇄 내에 있습니다. 기사가 끝나면 전체 코드를 제공하겠습니다. 약간의 길을 잃어도 걱정하지 마십시오.

    <span>/**
    </span><span> * Show 'insert posts' button on backend
    </span><span> */
    </span><span>add_action( "admin_notices", function() {
    </span>    <span>echo "<div class='updated'>";
    </span>    <span>echo "<p>";
    </span>    <span>echo "To insert the posts into the database, click the button to the right.";
    </span>    <span>echo "<a class='button button-primary' style='margin:0.25em 1em' href='{$_SERVER["REQUEST_URI"]}&insert_sitepoint_posts'>Insert Posts</a>";
    </span>    <span>echo "</p>";
    </span>    <span>echo "</div>";
    </span><span>});</span>
    다음, CSV 데이터를 가져오고 모든 데이터의 멋진 연관 배열을 만들 수있는 폐쇄를 작성합시다. 이제 사용중인 데이터 유형 (CSV, JSON, YAML 등)에 따라이 폐쇄는 다릅니다. 따라서 데이터에 맞게 조정하는 것이 좋습니다. 실제로 진행되는 일을 더 잘 따를 수 있도록 아래 코드를 댓글을 달았습니다.

    몇 가지 추가 메모 : * $ array [] = "value"구문은 Array_push의 경우 짧아 배정 된 값을 배열 끝으로 밀어냅니다. * 데이터/ 디렉토리 내부에 CSV 데이터를 테마 내에 저장하고 있습니다. 원하는 곳에 보관할 수는 있지만 선택한대로 Glob () 경로를 조정하는 것을 잊지 마십시오.

    당신이 더 시각적 인 사람이라면 (내가 알고 있습니다), 폐쇄가 실행될 때 반환되는 데이터는 이것의 선을 따라 무언가가 될 것입니다 (위에서 알 수 있듯이 이미 간단한 템플릿이 있습니다. 약간의 미친 짓을하고 싶을 경우를 대비하여 일부 오류 처리를 위해) :

    는 많이 보이지 않을 수도 있지만 작업을 완료하기에 충분합니다. 다음으로 게시물이 이미 데이터베이스에 있는지 확인할 수있는 기능이 필요합니다. 수백 개의 게시물을 삽입하는 스크립트를 실행하는 것보다 더 나쁜 것은 없습니다. 이 멋진 작은 폐쇄는 데이터베이스를 쿼리하여 발생하지 않도록합니다. 이 클로저에서는 폐쇄 범위를 벗어난 변수에 액세스 할 수있는 사용 () 함수를 사용하게됩니다.
    <span>/**
    </span><span> * Create and insert posts from CSV files
    </span><span> */
    </span><span>add_action( "admin_init", function() {
    </span>	<span>global $wpdb;
    </span>
    	<span>// ... code will go here
    </span><span>});</span>
    우리가 실제로이 모든 데이터를 실제 게시물로 삽입 할 것인지 궁금 할 것입니다. 알다시피, 알 수 있듯이이 모든 데이터가 깨끗하게 구성되고 필요한 수표를 수행하기 위해 기능이 설정되어 있는지 확인해야합니다. 이를 위해 $ post () 폐쇄를 실행하여 반환되는 데이터를 고려할 수 있습니다. 다음으로 $ post_exists () 폐쇄를 실행하여 현재 게시물 제목이 존재하는지 확인합니다. 아래 코드 내에는 많은 배열과 데이터가 전달되고 있습니다. 나는 당신이 모든 것을 더 잘 이해할 수 있도록 코드를 댓글을 달았습니다. 기본적으로 WP_INSERT_POST를 사용하여 데이터베이스에 게시물을 삽입하고 나중에 사용하기 위해 반환 된 포스트 ID를 저장합니다. 그런 다음 업로드 된 파일 (업로드/itepoint-antachments)의 경로를 작성하여 업로드 디렉토리를 가져 와서 필요한 첨부 파일 메타 데이터를 만듭니다. 그리고 마지막으로 파일의 이름과 확장자를 잡고 새로 생성 된 게시물에 첨부 파일을 삽입하는 데 사용할 것입니다.
    <span>/**
    </span><span> * Show 'insert posts' button on backend
    </span><span> */
    </span><span>add_action( "admin_notices", function() {
    </span>    <span>echo "<div class='updated'>";
    </span>    <span>echo "<p>";
    </span>    <span>echo "To insert the posts into the database, click the button to the right.";
    </span>    <span>echo "<a class='button button-primary' style='margin:0.25em 1em' href='{$_SERVER["REQUEST_URI"]}&insert_sitepoint_posts'>Insert Posts</a>";
    </span>    <span>echo "</p>";
    </span>    <span>echo "</div>";
    </span><span>});</span>
    그래서 다음은 무엇입니까? 가능한 한 간단하게 넣으려면 : 우리는 버튼을 누릅니다. 우리의 모든 노력은 돈을 지불하려고합니다 (희망적으로!). 버튼을 누르면 코드가 Post 변수를 확인한 다음 스크립트를 통해 실행되고 게시물을 삽입해야합니다. 멋지고 쉽습니다. 다음은 우리 모두 시각적 인 사람들을위한 스크린 샷입니다 :

    그리고 그게 다야! 앞에서 약속 했듯이이 기사에 사용 된 모든 코드는 다음과 같습니다. CSV 데이터에서 프로그래밍 방식으로 WordPress 게시물을 작성합니다

    결론 CSV 데이터에서 WordPress 게시물을 프로그래밍 방식으로 삽입하는 것은 처음에 생각하는 것처럼

    가 아닙니다. 바라건대, 이것은 사용자 정의 게시물 유형과 사용자 정의 필드를 모두 사용하는 데이터를 마이그레이션해야 할 때 많은 사람들의 리소스 역할을 할 수 있습니다. 기사의 시작 부분에서 언급했듯이 $ _post 변수를 사용하는 백엔드 버튼과 같은 많은 코드는 프로덕션 사이트에서 사용해서는 안됩니다. 이 기사에 사용 된 코드는 플러그 앤 플레이 솔루션이 아닌 출발점으로 사용해야합니다. 나는 당신이 기사를 즐겼기를 바랍니다. 질문이나 의견이 있으시면 아래에 자유롭게 남겨 두십시오. 최선을 다해 답변하고 문제를 해결하기 위해 최선을 다하겠습니다. 행복한 코딩! CSV 데이터에서 워드 프레스 게시물을 프로그래밍 적으로 생성하는 것에 대한 자주 묻는 질문 (FAQ) CSV 데이터에서 WordPress 게시물을 작성하는 데 중요한 것은 무엇입니까?
    <span>/**
    </span><span> * Create and insert posts from CSV files
    </span><span> */
    </span><span>add_action( "admin_init", function() {
    </span>	<span>global $wpdb;
    </span>
    	<span>// ... code will go here
    </span><span>});</span>

    CSV 데이터에서 WordPress 게시물을 작성하는 것은 구조적이고 효율적인 구조적이고 효율적인 WordPress 사이트로 많은 양의 데이터를 가져올 수있는 강력한 기능입니다. 방법. 이는 다른 플랫폼에서 컨텐츠를 마이그레이션하거나 대량으로 업로드 해야하는 많은 양의 데이터가있는 경우 특히 유용합니다. 각 게시물을 수동으로 만들 필요가 없으므로 시간과 노력이 절약됩니다. 또한 인적 오류의 위험이 없어짐에 따라 데이터 일관성과 정확도를 보장합니다.

    CSV 파일을 사용하여 게시물과 함께 이미지를 가져올 수 있습니까?

    예, 게시물과 함께 이미지를 가져올 수 있습니다. CSV 파일 사용. CSV 파일에 이미지의 URL을 포함해야합니다. CSV 파일을 가져 오면 이미지가 지정된 URL에서 가져와 해당 게시물에 첨부됩니다. 이 기능은 미디어 컨텐츠를 포함하는 게시물을 가져올 때 특히 유용합니다. CSV 파일의 데이터가 가져 오기에 올바르게 형식화되었는지 확인하려면 CSV의 데이터를 보장하려면 어떻게해야합니까? 파일은 가져 오기 위해 올바르게 형식화되며 표준 CSV 형식을 따라야합니다. 파일의 각 행은 게시물을 나타내야하며 각 열은 게시물 필드를 나타냅니다. 첫 번째 행에는 "post_title", "post_content", "post_status"등과 같은 필드 이름이 포함되어야합니다. 후속 행에는 각 게시물의 데이터가 포함되어야합니다. 쉼표를 사용하여 각 필드를 분리하고 텍스트 데이터를 따옴표로 동봉하십시오. 가져 오기 프로세스 중에 오류가 있으면 어떻게됩니까?

    가져 오기 프로세스 중에 오류가 있으면 가져 오기 기능은 오류에 대한 정보가 포함 된 WP_Error 객체를 반환합니다. 이 정보를 사용하여 문제를 해결할 수 있습니다. 일반적인 문제에는 잘못된 CSV 형식, 필요한 필드 누락 및 유효하지 않은 데이터가 포함됩니다. 오류의 위험을 최소화하기 위해 가져 오기 전에 CSV 파일을 신중하게 확인하십시오.

    CSV 가져 오기를 사용하여 기존 게시물을 업데이트 할 수 있습니까? CSV 파일에 게시물의 ID를 포함해야합니다. CSV 파일을 가져 오면 동일한 ID가있는 게시물이 이미 존재하면 기존 게시물이 새 데이터로 업데이트됩니다. 이 기능은 대량의 게시물을 대량으로 업데이트해야 할 때 특히 유용합니다.

    CSV 파일을 사용하여 사용자 정의 게시물 유형을 가져올 수 있습니까?

    예, CSV를 사용하여 사용자 정의 게시물 유형을 가져올 수 있습니다. 파일. CSV 파일에 게시물 유형을 포함해야합니다. CSV 파일을 가져 오면 게시물이 지정된 게시물 유형으로 생성됩니다. 이 기능은 사용자 정의 게시물 유형으로 작업 할 때 특히 유용하고 많은 양의 데이터를 가져와야합니다.

    CSV 파일의 가져 오기를 예약 할 수 있습니까?

    핵심 WordPress 기능이 수행합니다. CSV 파일의 가져 오기 일정을 지원하지 않으면이 기능을 제공하는 플러그인이 있습니다. 이 플러그인은 가져 오기 프로세스에 대한 일정을 설정할 수 있습니다. CSV 파일에서 데이터를 정기적으로 가져와야하는 경우 특히 유용 할 수 있습니다.

    원격 위치에서 CSV 파일을 가져올 수 있습니까?

    예, 원격 위치에서 CSV 파일을 가져올 수 있습니다. CSV 파일의 URL을 제공해야합니다. CSV 파일을 가져 오면 지정된 URL에서 데이터가 가져옵니다. 이 기능은 CSV 파일이 원격 서버 또는 클라우드 스토리지 서비스에서 호스팅 될 때 특히 유용합니다.

    WordPress 게시물을 CSV 파일로 내보낼 수 있습니까?

    예, WordPress 게시물을 내보낼 수 있습니다. CSV 파일에. 이 기능을 사용하면 게시물의 백업을 만들거나 콘텐츠를 다른 플랫폼으로 마이그레이션 할 수 있습니다. 내보낸 CSV 파일에는 제목, 컨텐츠, 상태 등을 포함한 게시물의 모든 데이터가 포함됩니다.

    다른 언어로 CSV 파일을 가져올 수 있습니까?

    예, 가져올 수 있습니다. 다른 언어로 된 CSV 파일. WordPress는 다국어 컨텐츠를 지원하므로 모든 언어로 게시물을 가져올 수 있습니다. 그러나 다른 언어의 특수 문자가 올바르게 표시되도록 CSV 파일이 UTF-8으로 인코딩되어 있는지 확인해야합니다.

위 내용은 CSV 데이터에서 프로그래밍 방식으로 WordPress 게시물을 작성합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.