ฉันต้องการสร้างบางสิ่งเช่นCrunchBase.com ด้วย WordPress.org (เพื่อให้มีเว็บไซต์หนึ่งที่เป็น "ฐานข้อมูล" และอีกอันหนึ่งซึ่งเป็นบล็อกที่เชื่อมต่อกับมัน)
มันเป็นไปได้? แล้วยังไง?
ขอบคุณทัล
ฉันต้องการสร้างบางสิ่งเช่นCrunchBase.com ด้วย WordPress.org (เพื่อให้มีเว็บไซต์หนึ่งที่เป็น "ฐานข้อมูล" และอีกอันหนึ่งซึ่งเป็นบล็อกที่เชื่อมต่อกับมัน)
มันเป็นไปได้? แล้วยังไง?
ขอบคุณทัล
คำตอบ:
@Tal Gailili : แน่นอนว่า WordPress จะเป็นแพลตฟอร์มที่ยอดเยี่ยมสำหรับการทำ CrunchBase!
สิ่งที่คุณต้องการดูคือประเภทโพสต์ที่กำหนดเองและTaxonomies ที่กำหนดเอง [ดูคำตอบนี้ฉันให้ในหัวข้อที่คล้ายกันมาก]
ด้วย WordPress 3.0 คุณสามารถสร้างcompany
ประเภทโพสต์ที่กำหนดเองจากนั้นเลือก taxonomies แบบกำหนดเองอย่างน้อยหนึ่งรายการที่ใช้กับ บริษัท เช่นหมวดหมู่เงินทุนและสถานะ ในการบูตความพยายามของคุณที่นี่รหัสคุณสามารถวางลงในfunctions.php
ไฟล์ของชุดรูปแบบของคุณเพื่อเริ่มต้นของคุณ:
register_post_type('company',
array(
'label' => __('Companies'),
'public' => true,
'show_ui' => true,
'query_var' => 'company',
'rewrite' => array('slug' => 'companies'),
'hierarchical' => true,
'supports' => array(
'title',
'page-attributes',
'excerpts',
'thumbnail',
'custom-fields',
'editor',
),
)
);
register_taxonomy('company-category', 'company', array(
'hierarchical' => true,
'label' => __('Categories'),
'query_var' => 'company-category',
'rewrite' => array('slug' => 'categories' ),
)
);
register_taxonomy('company-status', 'company', array(
'hierarchical' => true,
'label' => __('Status'),
'query_var' => 'company-status',
'rewrite' => array('slug' => 'status' ),
)
);
register_taxonomy('company-funding', 'company', array(
'hierarchical' => true,
'label' => __('Funding'),
'query_var' => 'company-funding',
'rewrite' => array('slug' => 'funding' ),
)
);
หากคุณต้องการโคลน CrunchBase คุณต้องการสร้างประเภทโพสต์ที่กำหนดเองสำหรับแต่ละประเภท (แม้ว่าฉันเดาว่าคุณต้องการบางสิ่งที่คล้ายกัน แต่สำหรับตลาดอื่น):
สำหรับหน้ารายการ บริษัท ของคุณ (เช่นนี้ใน CrunchBase) ฉันอาจสร้าง WordPress " หน้า " เรียกว่า " บริษัท " ( ลองคิดดู! ) จากนั้นใช้ปลั๊กอินรายการรหัสโพสต์เช่นรหัสย่อของหน้ารายการ (ถ้าคุณใช้ที่คุณ จะต้องทำการแก้ไขหนึ่งบรรทัดเพื่อสนับสนุนประเภทโพสต์ที่กำหนดเองเช่นที่ฉันแสดงที่นี่ )
ด้วยปลั๊กอินและการปรับเปลี่ยนนั้นคุณสามารถเพิ่มข้อความต่อไปนี้ในหน้า " บริษัท " ของคุณและจะแสดงรายการ บริษัท ทั้งหมดในรายการหัวข้อย่อยในหน้านั้นซึ่งคุณสามารถจัดวางสไตล์ด้วย CSS:
[list-pages post_type="company"]
จากนั้นสำหรับโครงร่างแบบกำหนดเองสำหรับแต่ละ บริษัท คุณสามารถทำสำเนาของไฟล์เท็มเพลตธีมsingle.php
และตั้งชื่อsingle-company.php
และทำการแก้ไขสิ่งที่คุณต้องการในเลย์เอาต์ที่นั่น
และหากคุณต้องการให้คนอื่นส่ง บริษัท พิจารณาใช้แบบฟอร์มแรงโน้มถ่วง ( ไม่ใช่ลิงค์พันธมิตร; US $ 39 ต่อใบอนุญาตไซต์และคุ้มค่าทุกเพนนี)
มีอีกมากฉันแน่ใจ แต่จะได้รับประโยชน์สูงสุดจากฟังก์ชั่นพื้นฐานที่คุณต้องการ หากคุณต้องการเพิ่มเติมให้ถามคำถามอื่นที่นี่ในคำตอบ WordPress!
หวังว่านี่จะช่วยได้
ไม่มีเหตุผลที่ไม่สามารถทำได้โดยใช้ประเภทโพสต์ที่กำหนดเองและ templating ที่เหมาะสมเพื่อให้เหมาะกับ ... แต่ไม่ว่าจะเป็นวิธีที่เหมาะสมในการทำมันเป็นเรื่องที่แตกต่าง
CrunchBase.com หยุดทำงานในขณะนี้ดังนั้นฉันไม่สามารถทำการประเมินค่าที่เหมาะสม แต่จากสิ่งที่ฉันจำได้มันจะเหมาะกว่าที่จะเป็นบล็อก WordPress + ปลั๊กอินที่กำหนดเองเพื่อจัดการรายการฐานข้อมูลเรียงลำดับเช่น ปลั๊กอิน e-Commerce ทำงานอย่างไรสำหรับ WP เก็บฐานข้อมูลของข้อมูล บริษัท ที่จัดเก็บและจัดการผ่านปลั๊กอินซึ่งจะช่วยให้คุณสามารถฝังข้อมูลที่เกี่ยวข้องลงในโพสต์บล็อกโดยใช้ฟังก์ชั่นจากปลั๊กอิน
อย่างไรก็ตาม ..... ถ้าคุณคิดว่าการใช้ฐานข้อมูลอื่นนั้นง่ายกว่าเพราะคุณกำลังทำการซิงค์รายวันนี้กับแหล่งข้อมูลอื่นมีรหัสการรายงานทั้งหมดแล้วใช้ฐานข้อมูลนี้สำหรับแหล่งอื่น ๆ มากมายเตรียมความพร้อมสำหรับอนาคตเมื่อคุณอาจ ต้องการใช้ฐานข้อมูลนี้ในโครงการอื่นเพื่อซิงค์กำลังเพิ่มข้อมูลจากแอปพลิเคชันอื่น ฯลฯ ... เคล็ดลับคือการสลับฐานข้อมูล:
//
// Connect to the other database
//
$mysql_link_edl = mysql_connect($db_host, $db_user, $db_pwd) or die (mysql_error() . 'Error connecting to mysql');
mysql_select_db($db_db, $mysql_link_edl) or die (mysql_error() . 'problem connecting with database');
จากนั้นทำสิ่งที่คุณเรียกใช้คิวรีทั้งหมด / ไฟล์ php ภายนอกที่สร้างรายงาน ฯลฯ จากนั้นสลับกลับไปที่ฐานข้อมูล WP:
mysql_select_db(WPDB_DATABASE, $mysql_link_edl);