WordPress

คำถาม & คำตอบสำหรับนักพัฒนา WordPress และผู้ดูแลระบบ

2
ทำความเข้าใจกับ add_rewrite_rule
ฉันพยายามadd_rewrite_ruleทำงานเพื่อดึงพารามิเตอร์จาก URL และส่งผ่านไปยังคำขอ เห็นโพสต์จำนวนมากเกี่ยวกับเรื่องนี้ แต่ดูเหมือนจะไม่สามารถใช้งานได้ หาก url เริ่มต้นด้วยสตริงที่แน่นอนฉันต้องการลบออกจาก url และส่งมันเป็น params แบบสอบถาม ตัวอย่างคำขอ URL: http://domain.com/foo/my_page สิ่งนี้จะเปลี่ยนเป็น http://domain.com/my_page?param=foo หาก 'foo' ไม่ปรากฏขึ้นก็ควรทำตามคำขอปกติ ตรรกะนี้ควรใช้กับ URL หน้าหรือโพสต์ประเภท URL ที่กำหนดเองในเว็บไซต์ของฉัน (โดยทั่วไป foo / *) คิดว่ามันจะเป็นเหมือนการส่งผ่านหาก url มี 'foo' ดึงออกมาและจากนั้นเพียงส่งผ่านไปยัง Wordpress เพื่อให้เป็นเรื่องปกติ ฉันมี 'param' ในฐานะ query_vars ที่อนุญาตแล้ว โดยรวมมันจะต้องทำงานต่อไปนี้: / foo / my_page (หน้า) / foo / …


2
การจัดเตรียมไซต์คุณจะจัดการการอัพเดทข้อมูลให้ตรงกันในฐานข้อมูลได้อย่างไร
เป็นที่ยอมรับกันโดยทั่วไปว่านักพัฒนาควรทดสอบการอัปเดตผ่านไซต์ staging ก่อนปล่อยไปยังเซิร์ฟเวอร์ live อย่างไรก็ตามเมื่อการปรับปรุงการพัฒนาต้องการการแก้ไขใน Wordpress DB สิ่งต่าง ๆ มีความซับซ้อนเนื่องจากผู้ใช้ในไซต์สดจะอัพเดต DB ด้วย การไหล (งง) เพียงอย่างเดียวที่ฉันสามารถจินตนาการได้มีดังต่อไปนี้: ทดสอบบนโลคัลเซิร์ฟเวอร์ (WAMP, XAMP ฯลฯ ) เมื่อพร้อมที่จะปรับใช้ให้ตั้งค่าไซต์สดในโหมดการบำรุงรักษา สำรองไซต์สด (ทำสำเนา sqldump ฯลฯ ) สร้างโคลนของไซต์สดที่ถูกล็อคไปยังไซต์การแสดงละคร อัปโหลดการแก้ไขจากสภาพแวดล้อมท้องถิ่นไปยังไซต์การแสดงละคร ทดสอบไซต์จัดเตรียม ผลักดันไซต์การแสดงละครสด ลบโหมดการบำรุงรักษา ข้อเสียของการไหลข้างต้น: ช่วงเวลาหยุดทำงานอาจนานกว่าที่คาดไว้สำหรับผู้ใช้ในขณะที่นักพัฒนากำลังทดสอบอัปเดตอย่างระมัดระวังในไซต์ทดสอบ อาจต้องการการจัดการการปรับเปลี่ยนแบบแมนนวล: ตัวอย่างเช่นเลย์เอาต์ของตัวสร้างเพจของผู้สร้างไซต์จะถูกเก็บไว้ในฐานข้อมูลดังนั้นเมื่อมีการแก้ไขเลย์เอาต์นั้นจะต้องอิมพอร์ตด้วยตนเองในไซต์ลำดับขั้น ในกรณีนี้มันอาจจะเพียงพอที่จะเพียงแค่วางและนำเข้าหน้าลงในเว็บไซต์การแสดงละครและหากทำงานให้นำเข้าพวกเขาในเว็บไซต์สด ฉันสงสัยว่าจะมีวิธีที่ดีกว่าและอัตโนมัติกว่านี้เพื่อให้บรรลุหรือไม่ คุณคิดอย่างไร? EDIT ได้รับการเสนอการแก้ไขตามที่ร้องขอในอดีต แต่ไม่มีผู้ใดเสนอวิธีการแก้ไขที่ชัดเจน: 9/2010 - การประสานฐานข้อมูลระหว่าง dev / การ staging และการผลิต 12/2011 …
11 database  staging  sync 

3
wp-cli เปิดใช้งานโหมดการบำรุงรักษา
ในระหว่างการอัพเกรดธีมหรือปลั๊กอินโหมดการบำรุงรักษาจะถูกเปิดใช้งานจากนั้นปิดการใช้งานเมื่อเสร็จสิ้น เป็นไปได้หรือไม่ที่จะเปิด / ปิดโหมดการบำรุงรักษาด้วยตนเอง Enabling Maintenance mode... Downloading update from xxxx Disabling Maintenance mode...
11 wp-cli 

4
กรองตามฟิลด์ที่กำหนดเองในประเภทโพสต์ที่กำหนดเองในหน้าผู้ดูแลระบบ
ฉันได้ใช้ฟิลด์ที่กำหนดเองขั้นสูงเพื่อสร้างฟิลด์ที่กำหนดเองสำหรับชื่อการแข่งขันคำตอบ ฯลฯ ฉันได้สร้างประเภทโพสต์ที่กำหนดเองสำหรับการแข่งขันตามที่แสดงในภาพและฉันใช้ Wordpress functions.php เพื่อสร้างคอลัมน์จากค่าฟิลด์ที่กำหนดเอง ฉันกำลังพยายามรับ "ตัวกรองตาม" - กล่องแบบหล่นลงพร้อมการแข่งขันชื่อ / ป้ายกำกับต่าง ๆ ดังที่แสดงด้านล่าง แต่ฉันสามารถค้นหาวิธีการแก้ปัญหาโดยใช้ taxonomies ซึ่งฉันไม่ได้ใช้ถ้าเป็นไปได้เพราะฉันใช้ฟิลด์ที่กำหนดเองเท่านั้น อย่างอื่น. เป็นไปได้หรือไม่ที่จะสร้างเมนูแบบเลื่อนลง "กรองตาม" ที่กำหนดเองโดยใช้ฟิลด์ที่กำหนดเองเท่านั้น?

1
Wordpress จะห่อสคริปต์แบบอินไลน์ใน CDATA เมื่อใด
ฉันกำลังดีบักปัญหากับสคริปต์บุคคลที่สามของเราที่ผู้ใช้ wordpress ใช้โดยการคัดลอก / วางส่วนของสคริปต์และ html ลงในเนื้อหาของโพสต์เช่น (ไม่ใช่ตัวอย่างของโลกที่แท้จริง): <script> window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); </script> ฉันสังเกตเห็นว่าการติดตั้ง wordpress บางส่วนจะห่อสิ่งนี้ใน CDATA บางอันจะไม่ (อาจเป็นการตรวจสอบ DOCTYPE บางประเภท - แม้ว่าชุดรูปแบบทั้งหมดที่ฉันทดสอบนี้ใช้ HTML5 doctype) แต่เมื่อตัดสคริปต์ใน CDATA ผู้ใช้จะถูกกัดโดยข้อผิดพลาดต่อไปนี้: https://core.trac.wordpress.org/ticket/3670 (การปิด>ถูกแทนที่โดยไม่ถูกต้อง>) ซึ่งนำไปสู่เบราว์เซอร์ที่ละเว้นเนื้อหาของสคริปต์ : <script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ …

4
ผู้ดูแลระบบ: หน้าแก้ไขช้ามากที่เกิดจากแบบสอบถามเมตาหลัก
เราได้สังเกตเห็นการโหลดนานมากเมื่อไปแก้ไขโพสต์หรือหน้า เมื่อใช้ Query Monitor เราพบว่าแบบสอบถามหลัก WP นี้ใช้เวลานานถึง 15-20 วินาที SELECT meta_key FROM wp_postmeta GROUP BY meta_key HAVING meta_key NOT LIKE '\\_%' ORDER BY meta_key LIMIT 30 caller: meta_form() post_custom_meta_box() do_meta_boxes() เราใช้ postmeta เป็นจำนวนมากเนื่องจากหนึ่งในประเภทโพสต์ของเราใช้ฟิลด์ที่กำหนดเองประมาณ 20 รายการ ฉันอาจจะบอกว่าบางทีเราพึ่งพา postmeta มากเกินไป แต่นี่ดูเหมือนว่าเป็นคำถามที่ไม่มีประโยชน์มากเพราะเห็นว่ามันไม่ได้เลือก ID ของโพสต์ นี่เป็นปัญหาทั่วไปใช่ไหม มีวิธีปิดการใช้งานฟังก์ชั่นนี้ผ่านตัวกรองหรือไม่? ขอบคุณสำหรับการป้อนข้อมูลใด ๆ
11 admin  editor 

1
เขียนทับกระสุนสำหรับหน้าเอกสารสำคัญของ CPT เป็นชื่อพหูพจน์ของกระสุน
ฉันมีประเภทโพสต์ที่กำหนดเองด้วยกระสุนเขียนใหม่ของpluginการสร้างโครงสร้าง URL ของhttp://site.com/plugin/plugin-slug/ ซึ่งทำให้ CPT Archive เป็นhttp://site.com/plugin/ ฉันต้องการเขียนซ้ำโดยไม่ใช้หน้าและเทมเพลตหน้าแบบกำหนดเองเพื่อใช้http://site.com/plugins/ (อันไหนlabels=>Nameใน CPT) ในขณะที่รักษากระสุนสำหรับการโพสต์เดียวเช่น/plugin/ นี้จะต้องสนับสนุนสิ่งต่าง ๆ เช่น `/ plugins / หน้า / 21 - ซึ่งมันทำในปัจจุบัน

2
ฉันจะทราบประเภทโพสต์ปัจจุบันได้อย่างไรเมื่ออยู่ใน post.php ในผู้ดูแลระบบ
ฉันกำลังพยายามทำบางสิ่งด้วย admin_init ขอหาก - และเฉพาะในกรณีที่ผู้ใช้กำลังแก้ไขโพสต์ (post.php) ด้วยโพสต์ประเภท "เหตุการณ์" ปัญหาของฉันคือว่าแม้ว่า wordpress ชี้ไปที่ตัวแปรทั่วโลกเรียก $ post_type ถ้าฉันทำ: global $post_type; var_dump($post_type); ส่งคืนค่า NULL แต่ถ้าฉันทำสิ่งนี้: global $pagenow; var_dump($pagenow); มันกลับหน้าปัจจุบันของฉัน เช่น "post.php" ฉันดูในฟังก์ชั่นนี้$screen = get_current_screen();แต่ไม่ได้ประกาศจนกว่าจะหลังจาก admin_init hooks ทำงานและจากนั้นก็ช้า ดังนั้นคำถามของฉันคือฉันจะรัน admin_init ได้อย่างไรโดยดูว่าโพสต์ประเภทใดที่โพสต์ปัจจุบันที่กำลังแก้ไขอยู่ ถ้า URL เป็นเช่นpost.php?post=81&action=editนั้นฉันจะรู้ได้อย่างไรว่าโพสต์ประเภท postid = 81 คืออะไร ขอบคุณ Malthe


3
จะเชื่อมโยง CPT ต่าง ๆ เข้าด้วยกันได้อย่างไร?
ฉันหวังว่าคำถามนี้จะมีที่นี่ ฉันคิดเสมอว่าการเชื่อมต่อประเภทโพสต์ที่กำหนดเองต่าง ๆ เข้าด้วยกันนั้นเป็นความต้องการที่พบได้บ่อยเช่นในตัวอย่างการสอนยอดนิยมเกี่ยวกับการใช้อนุกรมวิธานแบบกำหนดเอง (หนังสือ / ผู้แต่ง / ชื่อเรื่องภาพยนตร์ / นักแสดง / ผู้กำกับ ฯลฯ ) ฉันใช้ "โพสต์ 2 โพสต์" เป็นการส่วนตัว แต่การสนับสนุนหยุดลง ผลลัพธ์ที่เกี่ยวข้องมากที่สุดบน Google ชี้ไปที่ปลั๊กอินนี้ในขณะนี้ มีทางเลือกระยะยาวใดบ้าง นักพัฒนาเว็บ WordPress รุ่นเก๋าจะใช้อะไรในการออกแบบระบบการจัดการหนังสือ / ผู้แต่ง / ชื่อเรื่องด้วย WordPress วันนี้ถ้าปลั๊กอิน P2P เสร็จสิ้น?

2
การค้นหา WordPress ทำงานอย่างไรเบื้องหลัง?
ฉันใช้การค้นหา WordPress เพื่อค้นหาประเภทโพสต์ที่กำหนดเองและอนุญาตให้ผู้ใช้เจาะลึกในโพสต์แต่ละประเภท อย่างไรก็ตามฉันพบว่า WordPress ไม่ได้คืนสิ่งที่ฉันคิดว่าเป็นการแข่งขันที่ดีที่สุดก่อน ตัวอย่างเช่นหากฉันค้นหา Microsoft หน้าเว็บที่มีคำว่าผิดปกติจะยังคงกลับมาก่อนหน้าต่างๆที่ใช้คำนั้นเป็นประจำ โดยทั่วไปฉันพยายามที่จะหาข้อมูลบางอย่างเกี่ยวกับวิธีการจัดอันดับหน้าเว็บ WordPress และกำหนดความเกี่ยวข้องและถ้าผมสามารถมีอิทธิพลต่อนี้ได้โดยไม่ต้องติดตั้งปลั๊กอินใด ๆ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
11 search 

4
สร้างหน้าเก็บถาวรที่กำหนดเองสำหรับประเภทโพสต์ที่กำหนดเองในปลั๊กอิน
ฉันกำลังเขียนปลั๊กอินที่สร้างประเภทโพสต์ที่กำหนดเองชื่อ "my_plugin_lesson": $args = array ( 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'lessons', 'with_front' => false) ); register_post_type ('my_plugin_lesson', $args); ประเภทโพสต์ที่กำหนดเองมีไฟล์เก็บถาวรและ URL ของไฟล์เก็บถาวรคือ: http://example.com/lessons ฉันต้องการปรับแต่งรูปลักษณ์ของไฟล์เก็บถาวรนี้; ฉันต้องการแสดงรายการโพสต์ในรูปแบบตารางแทนที่จะเป็นไฟล์เก็บถาวรโพสต์บล็อก WordPress มาตรฐาน ฉันเข้าใจว่าสามารถสร้างเทมเพลตการเก็บถาวรแบบกำหนดเองในชุดรูปแบบโดยสร้างarchive-my_plugin_lesson.phpไฟล์ อย่างไรก็ตามฉันต้องการให้ปลั๊กอินทำงานกับธีมใด ๆ ฉันจะแก้ไขเนื้อหาของหน้าไฟล์เก็บถาวรโดยไม่ต้องเพิ่มหรือแก้ไขไฟล์ธีมได้อย่างไร แก้ไข: ฉันเข้าใจว่าฉันสามารถใช้archive_templateตะขอตัวกรองได้ อย่างไรก็ตามสิ่งนี้ไม่ได้แทนที่แม่แบบชุดรูปแบบซึ่งยังคงต้องมีเฉพาะชุดรูปแบบ ยกตัวอย่างเช่นเพียงเกี่ยวกับแม่แบบธีมทุกคนจะต้องget_header, get_sidebarและget_footerฟังก์ชั่น แต่สิ่งที่ควร ID ของเนื้อหา<div>จะเป็นอย่างไร สิ่งนี้แตกต่างกันในทุกธีม สิ่งที่ฉันต้องการจะทำคือการแทนที่เนื้อหาด้วยเนื้อหาของตัวเองและใช้แทนหน้าการเก็บถาวรสำหรับประเภทโพสต์ที่กำหนดเองของฉัน

2
set_post_thumbnail_size กับ add_image_size
อะไรคือความแตกต่างระหว่าง set_post_thumbnail_size และ add_image_size? set_post_thumbnail_size สำหรับรูปภาพทั้งหมดหรือไม่และ add_image_size สำหรับปรับขนาดภาพแยกกันหรือไม่ ขอบคุณ

1
ฉันจะแสดงเนื้อหาในรูปแบบธรรมดาได้อย่างไร
ฉันต้องการที่จะแสดงข้อความที่ตัดตอนมาใน Plaintext ฉันจะทำสิ่งนี้ได้อย่างไร นี่คือตัวอย่างของฉันที่ฉันแสดงเนื้อหา: <?php the_content(__( 'Weiterlesen ›','okay')); ?> ฉันจะเปลี่ยนตัวอย่างเพื่อแสดงเนื้อหาในแบบธรรมดาได้อย่างไร ทักทายนิกลาส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.