WordPress

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

2
ปรับปรุงความปลอดภัยของเวิร์ดเพรสโดยการซ่อนทรัพยากรที่ไม่ใช่สาธารณะ
ฉันใหม่จาก wordpress และฉันต้องการปรับปรุงความปลอดภัยของ wordpress multisite โดยการซ่อนทรัพยากรที่ไม่ใช่สาธารณะเช่น wp-admin, wp-config ฯลฯ ดูเหมือนว่าการตั้งค่าของฉันจะใช้งานได้ แต่ฉันไม่รู้ว่าการตั้งค่านี้อาจทำให้บางอย่างเสียหาย (คุณสมบัติหลัก, ปลั๊กอินยอดนิยม ฯลฯ ) การตั้งค่าทั่วไปของฉันดีหรือไม่? การตั้งค่าของฉันปรับปรุงการรักษาความปลอดภัยจริงหรือฉันเสียเวลาหรือไม่ httpd-vhosts.conf (apache) # Disallow public access php for .htaccess and .htpasswd files <Files ".ht*"> Require all denied </Files> # Disallow public access for *.php files in upload directory <Directory "/htdocs/wp-content/uploads/"> <Files "*.php"> deny …

1
codex นั้นไม่มีการบำรุงรักษาอย่างแข็งขันอีกต่อไปหรือไม่?
ฉันโดยทั่วไป Google เมื่อฉันต้องการการอ้างอิงอย่างรวดเร็วสำหรับฟังก์ชั่น Wordpress และโดยทั่วไปเป็นโพสต์ Codex ที่เกิดขึ้นก่อน (เช่นhttps://codex.wordpress.org/Function_Reference/get_termเมื่อ Googling 'get-term') ฉันได้รับการอาศัย Codex สำหรับปีและเป็นรางทราบว่ามีการอ้างอิงรหัสแยกต่างหาก (เช่น. https://developer.wordpress.org/reference/functions/get_term/ ) ที่ไม่ให้รายละเอียดมากขึ้นกว่า Codex ... แต่ส่วนใหญ่ดูเหมือนจะเป็นรายชื่อที่ซ้ำกัน บางครั้งสิ่งนี้จะกลับมาเป็นอันดับแรกในการค้นหาของ Google แทน แต่เมื่อเร็ว ๆ นี้ฉันได้พบความแตกต่างระหว่างสอง ... และดูเหมือนว่า Codex อาจล้าสมัยในบางสิ่ง ตัวอย่างเช่น สองการเชื่อมโยงดังกล่าวข้างต้น - ผมใช้เวลาสักหน่อยเวลาอ่านตั๋ว Trac ก่อนที่ผมจะตระหนักว่าเป็นจริงไม่ได้เป็นพารามิเตอร์ที่จำเป็นบน$taxonomy get_term()ผมกำลังอยู่บนเส้นทางที่สวนเพราะ Codex ยังรายการที่มันถูกต้อง ฉันไม่เห็นที่ใดก็ได้ใน Codex ที่กล่าวถึงว่าเลิกใช้แล้วถึงแม้ว่าจะมีลิงก์ไปยังการอ้างอิงโค้ดที่ด้านบนของแต่ละหน้า ไม่มีใครรู้ว่าถ้า Codex จะเลิก? มันยังคงให้บริการวัตถุประสงค์หรือไม่? หรือฉันควรจะสวยมากไม่สนใจมันและเพียงแค่ใช้developer.wordpress.org ?

4
วิธีรับเมตาโพสต์ที่กำหนดเองโดยใช้ REST API
ฉันกำลังพยายามสร้าง REST API สำหรับเว็บไซต์ wordpress ของฉันซึ่งใช้สำหรับรายการสิ่งอำนวยความสะดวกโดยใช้ปลั๊กอินตัวจัดการงาน wordpress ฉันลงทะเบียนโพสต์ที่กำหนดเอง taxonomies ใน \ plugins \ rest-api \ plugin.php API ด้านล่างให้รายชื่อทั้งหมดพร้อมการตอบกลับที่เป็นค่าเริ่มต้น http: // localhost / กีฬา / WP-JSON / WP / v2 / joblisting / ฉันต้องการเพิ่มเมตาโพสต์ในการตอบสนอง JSON โดยใช้รหัสด้านล่าง function slug_register_phone_number() { register_rest_field( 'job_listing', 'phone', array( 'get_callback' => 'slug_get_phone_number', 'update_callback' => null, 'schema' => …

2
WordPress ดึงข้อมูล meta สำหรับประเภทโพสต์ที่กำหนดเองทั้งหมดในมุมมองรายการ
ฉันมีปัญหาใน WordPress ที่ PHP กำลังจะตาย ฉันได้เพิ่มหน่วยความจำ แต่กระบวนการ PHP เพิ่มขึ้นถึงการใช้งาน CPU 100% จากนั้นจะตายและ Apache จะโยนข้อผิดพลาด 500 ข้อ ฉันพยายามที่จะให้ Apache เข้าสู่ระบบบางอย่างหรือ PHP / MySQL เพื่อบันทึกข้อผิดพลาด แต่ไม่มีอะไรถูกบันทึกไว้จากนั้นข้อผิดพลาดทั่วไป 500 ปัญหา 500 อยู่ในหน้ารายการเช่น: /wp-admin/edit.php?post_type=artist ขณะนี้เรามีรายการศิลปินมากกว่า 1200 รายการใน WordPress ถ้าฉันต่อท้ายการเรียงลำดับเช่นนี้: /wp-admin/edit.php?post_type=artist&orderby=date จากนั้นรายการจะโหลดขึ้นอย่างรวดเร็วแม้กระทั่ง! ฉันนั่งและดูบันทึกการสืบค้น MySQL แล้วและปรากฏว่า WordPress กำลังโหลดข้อมูลเมตาสำหรับทุกโพสต์เดียว (ทั้งหมด 1200 รายการ) เพื่อสร้างรายการ 10 หรือมากกว่านั้น สำหรับหนึ่งในแบบสอบถามที่ส่งคืนแถวที่ 92,000 ฉันกำลังใช้ฟิลด์กำหนดเองขั้นสูงและแม่แบบที่มีกรอบงานของตนเองดังนั้นโพสต์แต่ละรายการจะมีข้อมูลเมตาที่แนบมาอย่างดี …

2
วิธีการสร้างรายการที่รวบรวมทุกหมวดหมู่ในเว็บไซต์ของฉัน
ฉันต้องการแสดงหน้าการเก็บถาวรที่มีการแบ่งหน้าซึ่งแสดงรายการหมวดหมู่ทั้งหมดในเว็บไซต์ของฉันและแต่ละลิงก์จะไปที่หน้าเก็บถาวรหมวดหมู่นั้น ๆ ดังนั้นนี่จะเป็นหน้าเก็บถาวรของหมวดหมู่ที่เก็บถาวร แต่ละหมวดหมู่ในเว็บไซต์ของฉันมีภาพขนาดย่อที่กำหนดเองที่สร้างขึ้นด้วยตนเองเพื่อให้ตรงกับความคิดเห็นของหมวดหมู่ ฉันมีการตั้งค่าเค้าโครงเพื่อแสดงหมวดหมู่ทั้งหมด แต่ฉันทำสิ่งนี้ด้วยเทมเพลตหน้าเว็บที่กำหนดเองดังนั้นจึงไม่มีการแบ่งหน้า ซึ่งหมายความว่าทุกหมวดหมู่แสดงในหน้าเดียวซึ่งน่ารำคาญเล็กน้อย (ฉันมีมากกว่า 100 หมวดหมู่) ที่เก็บถาวรปัจจุบันของฉันกำลังตั้งค่าด้วยชื่อเทมเพลตของหน้าเว็บที่กำหนดเองpage-catlist.phpแต่ฉันยินดีที่จะเปลี่ยนเป็นไฟล์เทมเพลตชนิดอื่น นี่คือรหัสปัจจุบันที่ฉันใช้เพื่อส่งออกหมวดหมู่ทั้งหมดในหน้าเดียว: $args = array( 'orderby' => 'name', 'order' => 'ASC' ); $cats = get_categories( $args ); $thm_pre = 'http://example.com/images/thumbs/'; $thm_end = '.png'; foreach($cats as $cat) { $thumbnail = $thm_pre.$cat->slug.$thm_end; // output the loop HTML here // basically a list …

4
ป้องกัน comments_template () เพื่อโหลด comments.php
ฉันกำลังพัฒนาธีม WordPress โดยใช้เครื่องมือเทมเพลต ฉันต้องการให้โค้ดของฉันทำงานร่วมกันได้มากที่สุดกับฟังก์ชั่น WP core บางบริบทก่อน ปัญหาแรกของฉันคือการหาวิธีแก้ไขแม่แบบที่เริ่มต้นจากแบบสอบถาม WP ฉันจะแก้ไขที่หนึ่งใช้ห้องสมุดของฉันสมอง \ ลำดับชั้น เกี่ยวget_template_part()และฟังก์ชั่นอื่น ๆ ที่โหลด partials ชอบget_header(), get_footer()และที่คล้ายกันก็เป็นคนน่ารักง่ายต่อการเขียนกระดาษห่อกับเครื่องยนต์แม่แบบการทำงานบางส่วน ปัญหา ปัญหาของฉันคือวิธีโหลดเทมเพลตความคิดเห็น ฟังก์ชั่น WordPress comments_template()เป็นฟังก์ชั่น~ 200 บรรทัดที่ทำสิ่งต่างๆมากมายซึ่งฉันต้องการจะทำเช่นนั้นเพื่อความเข้ากันได้ของคอร์สูงสุด อย่างไรก็ตามทันทีที่ฉันโทรcomments_template()ไฟล์จะเป็นrequired มันเป็นไฟล์แรกของ: ไฟล์ในค่าคงที่COMMENTS_TEMPLATEหากกำหนดไว้ comments.php ในโฟลเดอร์ชุดรูปแบบหากพบ /theme-compat/comments.php ใน WP รวมโฟลเดอร์เป็นทางเลือกสุดท้าย ในระยะสั้นมีวิธีที่จะป้องกันไม่ให้ฟังก์ชั่นในการโหลดไฟล์ PHP ซึ่งไม่เป็นที่พึงประสงค์สำหรับฉันไม่เพราะฉันต้องทำให้แม่แบบและไม่เพียง requireแต่ใช้งานของฉัน ทางออกปัจจุบัน ในขณะนี้ฉันกำลังจัดส่งcomments.phpไฟล์ว่างเปล่าและฉันใช้'comments_template'ตัวกรองเบ็ดเพื่อทราบว่าแม่แบบ WordPress ต้องการโหลดและใช้คุณลักษณะจากเครื่องมือแม่แบบของฉันเพื่อโหลดแม่แบบ บางสิ่งเช่นนี้ function engineCommentsTemplate($myEngine) { $toLoad = null; // …
9 templates 

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับการอ้างอิงไดเรกทอรีปลั๊กอิน
ปลั๊กอินของฉันใช้รหัสต่อไปนี้เพื่ออ้างอิงไฟล์ แต่ฉันอ่านแล้วWP_PLUGIN_DIRจะไม่ทำงานหากผู้ใช้เปลี่ยนชื่อโฟลเดอร์ปลั๊กอินเริ่มต้น ฉันต้องการแทนที่/location-specific-menu-items/ด้วยการอ้างอิงไปยังโฟลเดอร์ปลั๊กอินปัจจุบัน $gi = geoip_open(WP_PLUGIN_DIR ."/location-specific-menu-items/GeoIP.dat", GEOIP_STANDARD); ฉันจะเขียนสิ่งนี้ใหม่เพื่อให้ทำงานได้โดยไม่คำนึงถึงชื่อของไดเรกทอรีปลั๊กอิน WP และโฟลเดอร์ปลั๊กอินที่ระบุได้อย่างไร แก้ไข: นี่คือวิธีแก้ปัญหาการทำงานขั้นสุดท้ายของฉันหลังจากที่ทุกคนป้อนข้อมูล ขอบคุณมาก! $GeoIPv4_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv4.dat'; $GeoIPv6_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv6.dat'; if (!filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === FALSE) { if ( is_readable ( $GeoIPv4_file ) ) { $gi = geoip_open( $GeoIPv4_file, GEOIP_STANDARD ); $user_country …

1
ส่วนรูปภาพที่กำหนดเองใน Customizer
ดังนั้นฉันมีส่วนที่กำหนดเองนี้ในเครื่องมือปรับแต่งที่ควบคุมผลิตภัณฑ์คุณสมบัติในหน้าแรก มีการลงทะเบียนทั้งหมดและอื่น ๆ แต่ปัญหาที่ฉันติดอยู่คือเมื่อลูกค้าอัปโหลดหนึ่งในภาพคุณลักษณะที่ฉันไม่ทราบวิธีที่จะทำให้การปรับปรุง รหัสfunction.phpฉันกำลังทำงานกับ: // Customiser function themeName_customize_register( $wp_customize ) { $wp_customize->add_setting('feature_product_one', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_two', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_three', array( 'default-image' => …

5
ฉันจะค้นหาโพสต์ด้วยคีย์เมตาบางส่วนได้อย่างไร
ฉันมีฟังก์ชั่นที่จัดเก็บสถานะ "ชอบ" สำหรับโพสต์เป็นโพสต์เมตา ฉันต้องการเชื่อมโยงว่า "ชอบ" กับผู้ใช้ที่ชอบดังนั้นฉันตั้งค่าฟิลด์ที่กำหนดเองที่เรียกว่า "like_status_ {user_id}" (โดยที่ {user_id} เป็นรหัสของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน) ซึ่งฉันเก็บเป็น 0 หรือ 1. ดังนั้นสำหรับโพสต์ที่มี "ไลค์" หลายรายการจะมีค่าเมตาหลายค่าในฐานข้อมูลที่ตั้งค่าดังนี้: 'meta_key' = 'like_status_0' 'meta_value' = 1 'meta_key' = 'like_status_2' 'meta_value' = 1 'meta_key' = 'like_status_34' 'meta_value' = 1 .... และอื่น ๆ มีจำนวนไลค์ในโพสต์ที่เฉพาะเจาะจง ฉันจะเรียกใช้คิวรีที่แสดงให้เห็นได้อย่างไรถ้ามีคนอื่นชอบโพสต์นั้น ฉันกำลังคิดบางอย่างเช่นนี้: $query = new WP_Query(array( 'meta_key' => 'like_status_{user_id}', 'meta_value' …


2
พอร์ตเครือข่าย Multisite มีปัญหาหรือไม่
ฉันกำลังติดตามบทช่วยสอนนี้เพื่อสร้างเครือข่ายเว็บไซต์ WordPress หลังจากเพิ่ม /* Multisite */ define( 'WP_ALLOW_MULTISITE', true ); wp-config.phpไฟล์ของฉันและเมื่อฉันเริ่มกำหนดค่าเครือข่ายหลายไซต์ฉันได้รับข้อผิดพลาดนี้ ERROR: You cannot install a network of sites with your server address. You cannot use port numbers such as :8080 ฉันพยายามเปลี่ยน Listen 0.0.0.0:8080 Listen [::0]:8080 ถึง Listen 0.0.0.0:80 Listen [::0]:80 จากhttpd.confApache แต่เนื่องจากเซิร์ฟเวอร์ wamp นี้ยังคงเป็นสีส้ม วิธีแก้ปัญหานี้ฉันใหม่กับ WordPress ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก

1
แบบสอบถามอนุกรมวิธานที่กำหนดเองเสียไปหลังจากอัปเกรดเป็น 4.4
ฉันเพิ่งอัพเกรดจาก 4.2 เป็น 4.4 และตอนนี้แบบสอบถาม taxonomy ของฉันส่งคืนว่างเปล่า มันทำงานได้ดีก่อนการอัพเกรด ฉันได้ลงทะเบียนอนุกรมวิธานที่กำหนดเองที่มีชื่อซึ่งจะถูกใช้โดยประเภทโพสต์ของฉันเอง'title' 'sg-publications'ตามลำดับชั้นของเทมเพลต WP ฉันสร้างเทมเพลตชื่อtaxonomy-title.phpซึ่งใช้ args คิวรีเริ่มต้นและจนถึงตอนนี้แสดงชื่อเรื่องของสิ่งพิมพ์แต่ละรายการอย่างถูกต้อง นี่คือผลลัพธ์ของการร้องขอ $ queried_object และ $ wp_query-> ในเทมเพลตนั้น: [queried_object] => WP_Term Object ( [term_id] => 1256 [name] => Stroupe Scoop [slug] => stroupe-scoop [term_group] => 0 [term_taxonomy_id] => 1374 [taxonomy] => title [description] => [parent] => 0 …

1
เครื่องมือแก้ไข TinyMCE กำลังทำลาย HTML ที่สวยงามของฉัน
นี่เป็นสิ่งที่ซ้ำกันแน่นอน: วิธีทำให้ Wordpress และ TinyMCE ยอมรับ <a> แท็กล้อมองค์ประกอบระดับบล็อกตามที่อนุญาตใน HTML5 ได้อย่างไร และHTML5, WordPress และปัญหา MCE จิ๋ว - ตัดแท็กสมอรอบผลลัพธ์ div ในผลลัพธ์ที่ขี้ขลาด ปัญหาของฉันคือการแก้ปัญหาที่แนะนำ ( tiny_mce_before_initตัวกรอง) ดูเหมือนจะไม่แก้ปัญหาของฉัน ฉันมี HTML ที่มีลักษณะเช่นนี้: <a href="#"> <img src="path/to/file.jpg" /> <p>Some amazing descriptive text</p> </a> ถูกกฎหมายอย่างสมบูรณ์ใน HTML5 อย่างไรก็ตามตัวแก้ไข WP ไม่ชอบและแปลงเป็น: <a href="#"> <img src="path/to/file.jpg" /> </a> <p>Some amazing descriptive …

2
WP 4.4 เบราว์เซอร์รูปภาพที่ตอบสนองต่อการเลือก "ผิด" หนึ่ง
ฉันดีใจที่ WP 4.4 มาพร้อมกับคุณสมบัติภาพที่ตอบสนองในตัว แต่ฉันไม่ได้มีความสุขกับมัน ฉันได้ตั้งค่าขนาดภาพที่กำหนดเองในfunctions.php: add_image_size ('โพสต์รูปขนาดย่อ', 600, 600, จริง); add_image_size ('news-large', 1024, false); add_image_size ('news-small', 500, false); add_image_size ('3-col', 500, 375, true); add_image_size ('presscutting', 600, 850, จริง); add_image_size ('ขนาดกลางใหญ่', 768, เท็จ); // เพิ่งเพิ่มวันนี้เพื่อรับการสนับสนุนอุปกรณ์ add_image_size ('full-feature-image', 2000, false); add_image_size ('แกลเลอรี่ภาพ', 800, 600, จริง); ขณะที่ผมคิดว่าภาพที่ไม่ได้ตัด (การปลูกพืชชุดfalse) srcsetมีการเพิ่ม ภาพถูกส่งออกในส่วนหน้าเช่น (เพิ่มตัวแบ่งบรรทัดเพื่อให้อ่านง่ายขึ้น): <img …

2
เคียวรี WP REST API v2 ด้วยหลายเมตาคีย์
ใช้ v2 ของ REST API ฉันต้องการสอบถามบางโพสต์ด้วยเมตาคีย์หลายอัน ด้วย v1 ฉันสามารถจัดรูปแบบ URL ที่ชอบ&filter[meta_value][month]=12&[meta_value][year]=2015และใช้งานได้ (หลังจากเปิดเผยค่าเมตาไปยัง API) ตอนนี้ด้วย v2 ฉันสามารถใช้งานได้โดยใช้วิธีการที่ระบุไว้ในกระทู้ GitHub นี้: https://github.com/WP-API/WP-API/issues/1599#issuecomment-161166805 โดยทั่วไปให้เพิ่มเขตข้อมูลเมตาโดยใช้rest_query_varsตัวกรองดังนี้ add_filter( 'rest_query_vars', 'flux_allow_meta_query' ); function flux_allow_meta_query( $valid_vars ) { $valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) ); return $valid_vars; } กับที่ผมสามารถกรองตามอย่างใดอย่างหนึ่งที่สำคัญเมตาโดยใช้ URL wp-json/wp/v2/posts?filter[meta_key]=test&filter[meta_value]=onเช่น อย่างไรก็ตามดูเหมือนว่าวิธีเดียวในการกรองเมตาคีย์หลายรายการคือการเขียนตัวกรองแบบกำหนดเอง ใครช่วยชี้ให้ฉันในทิศทางที่ถูกต้องของการทำเช่นนั้น?

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