WordPress

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

1
คุณเรียกโพสต์ด้วยชื่อกระสุนผ่าน REST API ได้อย่างไร
มันใช้งานได้กับหน้าเว็บของฉัน แต่ไม่ใช่สำหรับโพสต์ของฉัน ถ้าฉันไปที่example.com/wp-json/wp/v2/pages?slug=page-nameมันจะดึงหน้าอย่างถูกต้อง ถ้าฉันไปที่example.com/wp-json/wp/v2/posts?slug=post-nameมันจะไม่ดึงโพสต์ในลักษณะเดียวกัน มีใครช่วยบอกวิธีรับโพสต์ด้วยชื่อกระสุนได้ไหม? โพสต์มีหมวดหมู่ด้วย แต่ฉันไม่รู้ว่ามันจำเป็นหรือวิธีเพิ่มอย่างถูกต้องในแบบสอบถาม เอกสารทั้งหมดที่ฉันได้พบอ้างถึงฟังก์ชั่น [ตัวกรอง] ซึ่งไม่ได้รับการสนับสนุนอีกต่อไป
16 urls  rest-api 

1
การตั้งค่า $ _SERVER ['HTTPS'] = 'เปิด' ป้องกันการเข้าถึง wp-admin
ก่อนอื่นเซิร์ฟเวอร์ของฉันกำลังนั่งอยู่หลังโหลดบาลานเซอร์ ใบรับรอง SSL ของฉันตั้งอยู่บน load balancer และจัดการ HTTPS ข้อมูลที่เข้ามาในพอร์ต 443 จะถูกส่งต่อไปยังเซิร์ฟเวอร์ Wordpress โดยใช้ HTTP ที่พอร์ต 80 อย่างไรก็ตาม wordpress และ php ไม่รู้จักการกำหนดค่าเซิร์ฟเวอร์ของฉัน นี่ทำให้เบราว์เซอร์สงสัยเกี่ยวกับความถูกต้องของใบรับรอง SSL ที่ถูกต้องของฉัน ในการแก้ไขปัญหานี้ฉันได้เพิ่มรหัสต่อไปนี้ลงใน functions.php ฉันพบรหัสที่นี่และCodex ตกลง /** * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO */ if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; } วิธีนี้ใช้งานได้ดีสำหรับส่วนหน้า แต่ตอนนี้ / wp-admin / …

1
ฉันจะตั้งค่าลำดับการจัดเรียงเริ่มต้นของผู้ดูแลระบบสำหรับประเภทโพสต์ที่กำหนดเองเป็นคอลัมน์ที่กำหนดเองได้อย่างไร
ทางออกที่มีอยู่ที่นี่ ฉันได้ตั้งค่าประเภทโพสต์ที่กำหนดเองที่เรียกว่า clientarea และตั้งค่าคอลัมน์ที่กำหนดเองหลายรายการในพื้นที่ผู้ดูแลระบบ - คอลัมน์ที่กำหนดเองเป็นเขตข้อมูลเมตาแบบกำหนดเองทั้งหมดตามที่คุณเห็นจากรหัสของฉัน ฉันต้องการจัดเรียงตาม 'วันที่นัดหมาย' จากมากไปหาน้อยโดยค่าเริ่มต้น คอลัมน์ทั้งหมดทำงานได้ดีและสามารถจัดเรียงได้เองตามที่คาดไว้ แต่ฉันไม่สามารถรับลำดับการจัดเรียงเริ่มต้นให้ทำงานได้ หากฉันเปลี่ยนฟิลด์การเรียงลำดับเริ่มต้นเป็นฟิลด์มาตรฐาน (เช่น 'ชื่อ') มันจะทำงานได้ตามที่คาดไว้ ดูเหมือนว่าจะไม่ทำงานเมื่อฉันพยายามตั้งค่าคอลัมน์ที่กำหนดเองเป็นลำดับการเรียงเริ่มต้นเท่านั้น การสั่งซื้อใช้งานได้ (เช่นฉันสามารถเปลี่ยนระหว่าง asc และ desc โดยค่าเริ่มต้นแม้จะมีคอลัมน์ที่กำหนดเอง) แต่ก็ไม่ได้รับการสั่งซื้อดังนั้นจึงย้อนกลับไปที่การเรียงลำดับตามวันที่โพสต์ที่กำหนดเองได้รับการเผยแพร่ ฉันกำลังคิดถึงอะไร รหัสของฉันเป็นดังนี้: add_action( 'manage_posts_custom_column' , 'custom_columns', 10, 2 ); function custom_columns( $column, $post_id ) { global $wpdb; switch ( $column ) { case 'extranet_case_office': $get_office_ID = get_post_meta( …

5
การเปลี่ยนเส้นทางไซต์ไปที่ wp-signup.php
ฉันย้ายเนื้อหาจากเซิร์ฟเวอร์ที่ใช้งานจริงไปยังเซิร์ฟเวอร์ dev ของเราเพื่อพยายามซิงค์สภาพแวดล้อมทั้งหมด ฉันใช้ปลั๊กอินการย้าย WP All-In-One ตอนนี้เมื่อฉันเข้าถึง dev.domain.com ฉันถูกส่งต่อไปยังhttp://dev.domain.com/wp-signup.php?new=dev.domain.com ดูเหมือนว่าหนึ่งในค่าฐานข้อมูลจะต้องไม่ถูกต้องและ WordPress กำลังส่งต่อฉันที่นี่เพราะมัน หากฉันปิดใช้งาน Multisite ทุกอย่างดูเหมือนว่าจะทำงานอย่างถูกต้อง นี่คือ. htaccess ของฉัน: <FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$"> Order allow,deny Deny from all Satisfy All </FilesMatch> <FilesMatch "^(wp-config\.php|readme\.html|license\.txt)"> Order allow,deny Deny from all Satisfy All </FilesMatch> และ wp-config ของฉัน: /** Multisite / Wordpress Network **/ define('MULTISITE', true); define('SUBDOMAIN_INSTALL', …

9
วิธีเพิ่มไฟล์ css ที่กำหนดเองในธีมได้อย่างไร
บางธีมไม่ขอให้คุณแก้ไขไฟล์ style.css แทนการใช้ไฟล์ custom.css แทน หากคุณเขียนโค้ดบน custom.css มันจะเขียนทับสไตล์องค์ประกอบเดียวกันใน style.css ฉันคิดว่าวิธีนี้ทำเพื่อป้องกันการสูญเสียสไตล์ผู้ใช้ในการอัพเดตธีมใช่หรือไม่ มันทำงานอย่างไร พวกเขารวมไฟล์ custom.css ไว้ในธีมแล้วหรือยัง? แต่ไฟล์นี้รวมอยู่ในธีมอย่างไรเพื่อให้ธีมค้นหาสไตล์ใน custom.css ก่อน? ขอบคุณ

5
วิธีเพิ่มลิงก์ที่กำหนดเองไปยังเมนูด้วย URL ที่สัมพันธ์กับ URL บล็อก
ส่วนหนึ่งของงานของฉันคือการสร้างเว็บไซต์ Wordpress ฉันมักจะทำงานบนแล็ปท็อปของฉันจนกว่าฉันจะมีสิ่งที่ดีพอที่จะอัปโหลดไปยังเซิร์ฟเวอร์ทดสอบที่ลูกค้าทำการตรวจสอบ ฉันจะสร้าง VirtualHost สำหรับโครงการใหม่ทุกดังนั้นฉันมักจะทำงานร่วมกับการติดตั้ง Wordpress ในโดเมนที่มีลักษณะเช่นhttp://local.example.com/แต่เมื่อเว็บไซต์ที่มีการอัปโหลดไปยังเซิร์ฟเวอร์ทดสอบ (ไม่ได้ถูกควบคุมโดยฉัน) http://testserver.com/arbitrary/path/example/โดเมนอาจจะเป็นสิ่งที่ชอบ ปัญหาคือถ้าฉันเพิ่มลิงค์ที่กำหนดเองไปยังเมนูที่ชี้ไปเช่น/events/มันจะทำงานได้ดีในการสร้างลิงค์ไปยังhttp://local.example.com/events/แต่ในเซิร์ฟเวอร์ทดสอบลิงก์จะชี้ไปhttp://testserver/events/ที่ซึ่งเห็นได้ชัดว่าไม่ถูกต้อง สิ่งที่ฉันต้องการคือการให้ลิงค์ URL ที่กำหนดเองซึ่งจะทำงานทั้งในสภาพแวดล้อมท้องถิ่นและเซิร์ฟเวอร์ทดสอบ ฉันจัดการกับปัญหาของการเปลี่ยนตัวเลือกhomeและsiteurlWordpress แล้วโดย: เปลี่ยนการตั้งค่าเหล่านั้นในฐานข้อมูลท้องถิ่น สร้างดัมพ์ของฐานข้อมูล อัพเดตฐานข้อมูลบนเซิร์ฟเวอร์ กู้คืนตัวเลือกในท้องถิ่น ฉันไม่ต้องการใช้ URL แบบเต็มสำหรับลิงก์ที่กำหนดเองและต้องแทนที่ URL ด้วยเซิร์ฟเวอร์ทุกครั้งที่ฉันต้องอัปเดตฐานข้อมูลของเซิร์ฟเวอร์ สำหรับลิงก์ภายในเนื้อหาโพสต์มีปลั๊กอินที่ช่วยแก้ปัญหาการเพิ่มรหัสย่อสองรายการคือ: http://wordpress.org/extend/plugins/url-shortcodes/แต่ฉันไม่สามารถหาสิ่งที่คล้ายกับลิงก์ที่กำหนดเองได้ .
16 menus  urls 

1
สั่งซื้อโดยใช้เมตาคีย์และค่าเมตาหลาย ๆ ค่า [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันจะตั้งค่าเมตาคีย์หลายคำสั่งตามค่าเมตาใครสามารถให้ตัวอย่างฉันได้บ้าง?
16 wp-query  metabox 

2
Data sanitization: แนวทางปฏิบัติที่ดีที่สุดพร้อมตัวอย่างโค้ด
ฉันกำลังพยายามทำความเข้าใจกับการล้างข้อมูล (ไม่ใช่การตรวจสอบข้อมูล) เพื่อช่วยฉันในการเขียนธีมที่ปลอดภัยสำหรับ WordPress ฉันค้นหาทางอินเทอร์เน็ตเพื่อค้นหาคำแนะนำที่เข้าใจง่ายสำหรับนักพัฒนาชุดรูปแบบที่มีรายละเอียดวิธีปฏิบัติที่ดีที่สุด มีทรัพยากรอยู่สองสามอย่างที่ฉันเจอรวมถึงเพจ codex ที่ชื่อว่า Data Validation แม้ว่าจะไม่มีประโยชน์อะไรสำหรับฉัน หน้า codex แสดงรายการฟังก์ชั่นการฆ่าเชื้อที่มีอยู่การใช้งานและสิ่งที่พวกเขาทำ แต่ล้มเหลวในการอธิบายว่าทำไมคุณจึงใช้ฟังก์ชันหนึ่งเหนือสิ่งอื่นหรือในสถานการณ์ที่คุณจะใช้ฟังก์ชั่นการฆ่าเชื้อ จุดประสงค์ของโพสต์นี้คือเพื่อขอให้ทุกคนมีส่วนร่วมในตัวอย่างของรหัสที่ไม่ดี / ไม่ถูกแก้ไขและวิธีการเขียนใหม่เพื่อการสุขาภิบาลที่ถูกต้อง นี่อาจเป็นรหัสทั่วไปในการทำให้สะอาดชื่อโพสต์หรือโพสต์ thumnails src หรือรหัสที่ซับซ้อนมากขึ้นที่จัดการการฆ่าเชื้อของ$_POST ข้อมูลสำหรับคำขอ Ajax นอกจากนี้ฉันต้องการทราบว่าฟังก์ชั่น WordPress สำหรับการเพิ่ม / อัปเดตฐานข้อมูล (เช่นที่กล่าวถึงในบล็อกรหัสด้านล่าง) จะดูแลการฆ่าเชื้อให้คุณโดยอัตโนมัติหรือไม่? ถ้าใช่มีข้อยกเว้นใด ๆ เมื่อคุณจะใช้มาตรการเพิ่มเติมเพื่อฆ่าเชื้อข้อมูลที่ส่งไปยังฟังก์ชัน WordPress เหล่านี้หรือไม่ add_user_meta update_user_meta add_post_meta update_post_meta //just to name a few นอกจากนี้การฆ่าเชื้อจะต้องทำแตกต่างกันเมื่อสะท้อน HTML ใน PHP เมื่อเทียบกับ …

1
ปรับแต่งหน้าจอโพสต์สำหรับประเภทโพสต์ที่กำหนดเอง?
เป็นวิธีที่ดีที่สุดในการปรับแต่งหน้าจอแก้ไขโพสต์ผู้ดูแลระบบสำหรับประเภทโพสต์ที่กำหนดเองที่เฉพาะเจาะจงคืออะไร? ฉันได้ปรับแต่งให้มีขอบเขตในการสร้างประเภทโพสต์ที่กำหนดเอง - เพิ่มฟิลด์เพิ่มเติม ฯลฯ แต่ฉันต้องการลบองค์ประกอบหลายอย่างเช่น Permalinks โพสต์ตัวอย่างปิดใช้งานการแก้ไขอย่างรวดเร็ว ฯลฯ

3
ทำไมตาราง wp_options` จึงไม่มีดัชนีบน "autoload"
ในตอนต้นของแต่ละหน้าเสิร์ฟโดย WordPress มีการเรียก MySQL เพื่อดึงข้อมูลตัวเลือก: SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'; เนื่องจากไม่มีดัชนีในautoloadคอลัมน์ MySQL จึงต้องค้นหาแถวทั้งหมด ฉันเจอความคิดเห็นของคำตอบนี้ด้วยว่าจะไม่มีการเพิ่มประสิทธิภาพแม้ว่าจะมีดัชนีก็ตาม ในใบสมัครของฉันฉันใช้ค่าชั่วคราวจำนวนมากเพื่อทำหน้าที่แทนเซสชัน พวกเขาทำงานได้ดีและฉันมีกิจวัตรการเก็บขยะของตัวเอง ผมสังเกตเห็นว่าในwp_optionsตารางค่าชั่วคราวของฉัน (คนที่เริ่มต้นด้วย_transient_) autoload=noทุกคนมี ฉันคาดว่าจำนวนแถวของwp_optionsตารางของฉันจะเพิ่มขึ้นตามจำนวนผู้ใช้ที่เกิดขึ้นพร้อมกันเพิ่มขึ้น ฉันต้องการที่จะรู้ว่าทำไมตารางถูกออกแบบด้วยวิธีนี้ และฉันควรสร้างดัชนีสำหรับกรณีเฉพาะของฉันหรือไม่

2
Woocommerce เพิ่มผลิตภัณฑ์รูปแบบต่างๆลงในรถเข็นจากลิงค์ที่กำหนดเอง [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ WordPress Exchange Stack Stack ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพยายามเพิ่มผลิตภัณฑ์รูปแบบต่างๆลงในรถเข็นของฉันโดยตรงผ่านลิงก์ ฉันกำลังตั้งค่า vari_id ด้วยสตริงแบบสอบถาม เท่าที่ฉันสามารถบอกได้ว่าฉันกำลังส่งข้อมูลในลักษณะเดียวกันกับที่ผลิตภัณฑ์ฟอร์มเริ่มต้นเปลี่ยนแปลง นี่คือรหัสด้านในของหน้าผลิตภัณฑ์เดียวของฉัน: <a href="<?php echo esc_url( $product->add_to_cart_url() ); ?>&variation_id=262" class="rounded-rect-button add-to-cart">Add to Cart</a> ในทางกลับกันผลิตภัณฑ์ที่เรียบง่ายทำงานได้ดี ฉันได้กำหนดราคาตามรูปแบบผลิตภัณฑ์ของฉันในผู้ดูแลระบบ ไม่แน่ใจว่าทำไมมันไม่ง่ายเหมือนการส่งข้อมูลผ่าน ความช่วยเหลือใด ๆ ที่จะชื่นชมอย่างมาก

3
จะจัดลำดับฟิลด์การเรียกเก็บเงินใหม่ในเทมเพลต WooCommerce Checkout ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ WordPress Exchange Stack Stack ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังสร้างรูปแบบสไตล์ Madlib เช็คเอาท์ใช้ WooTheme ของการปรับแต่งเขตเช็คเอาท์โดยใช้การกระทำและฟิลเตอร์ ฟิลด์การเรียกเก็บเงินในเทมเพลตการชำระเงินform-billing.phpจะแสดงด้วยการโทรนี้: <?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?> <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?> <?php endforeach; ?> จะเปลี่ยนลำดับของฟิลด์ที่ปรากฏได้อย่างไร? การสั่งซื้อปัจจุบันฟิลด์ (เริ่มต้น) คือ ชื่อแรก นามสกุล บริษัท (ซ่อนไว้สำหรับฉัน) เมืองเมือง / รหัสไปรษณีย์ ประเทศ …
15 filters  plugins 

4
ลบกระสุนชนิดโพสต์ที่กำหนดเองจาก URL
ไม่พบคำตอบที่เป็นประโยชน์สำหรับสิ่งนี้ ฉันทราบถึงปัญหาความขัดแย้งและปัญหาทั้งหมดที่อาจทำให้เกิดขึ้นฉันอยากรู้ว่ามันเป็นไปไม่ได้ที่จะถูกเสนอแนะ นี้จะต้องเขียน WP ฉันรู้มากนี้ โดยพื้นฐานสมมติว่าเรามี "เหตุการณ์" CPT ฉันต้องการจะมีหน้าเหตุการณ์เดียวของมี URL ที่http://domain.com/single-event-nameและไม่http://domain.com/events/single-event-name มีความคิดเกี่ยวกับวิธีการเกี่ยวกับมันได้หรือไม่


1
ตัวเลือกการปรับปรุงที่เก็บอยู่ในอาร์เรย์หลายมิติ
ฉันมีข้อมูลในwp_optionsตารางที่จัดเก็บในปัจจุบันเป็นอาร์เรย์หลายมิติ ( profile_element_order): a:12:{s:17:"img_base64_enable";s:1:"1";s:25:"moulding_combination_page";s:0:"";s:24:"moulding_collection_page";s:0:"";s:25:"idea_gallery_thumb_height";s:3:"200";s:24:"idea_gallery_thumb_width";s:3:"200";s:23:"collection_thumb_height";s:3:"200";s:22:"collection_thumb_width";s:3:"200";s:20:"profile_item_columns";s:1:"4";s:17:"idea_item_columns";s:1:"2";s:24:"collections_item_columns";s:1:"2";s:25:"combinations_item_columns";s:1:"4";s:21:"profile_element_order";a:5:{i:0;s:8:"Option 1";i:1;s:8:"Option 2";i:2;s:8:"Option 3";i:3;s:8:"Option 4";i:4;s:8:"Option 5";}} สิ่งที่ฉันพยายามทำให้สำเร็จคืออัปเดตprofile_element_orderตัวเลือก (ภายในตัวเลือกเหล่านั้น) นี่คือทุกสิ่งที่ดู: function psort_save_order() { global $mouldings_options; $list = $mouldings_options['profile_element_order']; $new_order = $_POST['list_items']; $new_list = array(); // update order foreach($new_order as $v) { if(isset($list[$v])) { $new_list[$v] = $list[$v]; } } // save the new order update_option('profile_element_order', $new_list); die(); } add_action('wp_ajax_psort_update_order', …

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