2011-09-22 5 views
1

나는 새로운 웹 사이트를 구성하는 과정에서 상대적으로 새로운 WP 개발자이며 "전략"에 대한 조언을 찾고 있습니다.사용자 지정 게시물 "변형"

간단히 말해서, 이것은 "제품 카탈로그"또는 많은 항목과 그 속성의 목록 일 것입니다. 지금까지 사용자 지정 게시 유형 (항목), 관련 분류 및 일부 맞춤 메타 (결국 각 항목의 SKU)를 개발했으며 게시 유형/분류/메타를 표시하는 베어 본 페이지를 성공적으로 개발했습니다.

마지막 부분은 기본적으로이 게시물 유형에 "유사 콘텐츠"를 개발하는 방법을 알아내는 것입니다. 각 항목에는 길이, 너비, 색상, 모양과 같은 것이 필요합니다. 각 길이의 너비/색상/모양이 다를 수 있습니다. 현재이 정보를 CSV에 저장 한 다음 약간의 PHP 스크립트가 CSV를 가져 와서 (게시물의 제목을 기반으로 파일 이름을 연결 한 다음) 데이터를 HTML 표로 표시합니다. 이것은 사용자가 검색/쿼리 할 수있는 좋은 방법이 없다는 것을 제외하고는 훌륭합니다 (예 : "X의 색상을 가진 모든 항목을보고 싶습니다").

나는 기존 전자 상거래 플러그인/테마를 파고 들었지만 (익스프레스 스토어), 코드는 내 스킬 레벨이 약간 두껍다. 지금까지 내가 알 수있는 것처럼,이 플러그인은 제품/카테고리/변형에 사용되는 자체 테이블을 작성하지만 이것은 내 요구에 과도한 것으로 보인다.

따라서 제 질문은이 작업을 수행하는 가장 좋은 방법입니다. 이 게시물 유형에 대한 또 다른 맞춤 메타이어야 하는가? 또는 사용자 정의 테이블을 작성해야 할 필요가 있습니까? 각 항목에 대해이 데이터를 수동으로 입력하지 않아도되도록 CSV를 사용하여 통합 할 수있는 방법이 있습니까?

제 생각에는 사용자 지정 메타 (크기/너비/색/모양)을 개발 한 다음 CSV를 메타에 삽입하는 작은 PHP 스크립트가있을 수 있습니다. 이 소리가 맞습니까? 너비/색상/모양이 올바른 크기 (즉, 계층 구조 유지)와 일치하는지 어떻게 확인할 수 있습니까?

감사합니다.

편집 추가 : 하나는 각 변수

를 조회 할 수 있습니다

항목 XYZ 9000

 
Length 100  200  500 
Width  50  54  58 
Color  Red  White Blue 
Shape  Flat Round Square 

을 : 를 명확하게하기 위해이 내가 생성하기 위해 노력하고있어 테이블의 유형은 기본적으로

+0

빠른 참고 :이 내가 달성하기 위해 노력하고있어 기본적입니다. 누구든지 "배열 배열"구현에 대한 의견을 말할 수 있습니까? http://stackoverflow.com/questions/4004964/advanced-dynamic-wordpress-custom-meta-boxes – nfaust

답변

1

흥미로운 사람이라면 @bainternet의 "My-Meta-Box"라는 헬퍼 플러그인을 사용하여 github에서 사용할 수 있습니다 : https://github.com/bainternet/My-Meta-Box

그는 리피터 블록 기능이 내장되어있어 쉽게 들어올 수 있고 쉽게 갈 수있었습니다.

$prefix = 'somePrefix_'; 

$config = array(
    'id' => 'spec_meta_box',     // meta box id, unique per meta box 
    'title' => 'Technical Specifications',  // meta box title 
    'pages' => array('customPostType'),     // post types, accept custom post types as well, default is array('post'); optional 
    'context' => 'normal',      // where the meta box appear: normal (default), advanced, side; optional 
    'priority' => 'high',      // order of meta box: high (default), low; optional 
    'fields' => array(),      // list of meta fields (can be added by field arrays) 
    'local_images' => false      // Use local or hosted images (meta box images for add/remove) 
); 
$my_meta = new AT_Meta_Box($config); 

/* 
* To Create a reapeater Block first create an array of fields 
* use the same functions as above but add true as a last param 
*/ 

$repeater_fields[] = $my_meta->addTextField($prefix.'customMetaName',array('name'=> 'customMetaTitle'),true); 

//repeater block 
$my_meta->addRepeaterBlock($prefix.'repeaterBlockID',array('inline' => true, 'name' => 'Add or Remove a Field','fields' => $repeater_fields)); 

//Finish Meta Box Decleration 
$my_meta->Finish(); 

그리고 다음과 같이 당신이 당신의 사후에 이러한 값을 뽑을 수 :

$data = get_post_meta($post->ID,"repeaterBlockID",true); 
$c = 0; 
if (count($data) > 0){ 
    echo 'foreach function'; 
    foreach((array)$data as $p){ 
     echo '<ul>'; 
     echo '<li>Label: '.$p['customMetaName'].'</li>'; 
     echo '</ul>'; 
    } 
+0

수정 된 내용은 다음과 같습니다. http://wordpress.stackexchange.com/questions/19838/create-more-meta-boxes-as-needed – nfaust

관련 문제