WordPress

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

8
วิธีโหลด wp_editor () ผ่าน AJAX / jQuery
ฉันมีชุดรูปแบบที่พัฒนาขึ้นเองและซับซ้อนมาก หนึ่งในสิ่งที่ฉันมีคือหลายพื้นที่เนื้อหาที่ผู้ใช้สามารถระบุเนื้อหาสำหรับแท็บเฉพาะ ฉันโหลดตัวแก้ไข WordPress หลายอินสแตนซ์ผ่านwp_editor()ฟังก์ชั่น มันทำงานได้อย่างสมบูรณ์ (นี่คือทั้งหมดที่ด้านผู้ดูแลระบบในประเภทโพสต์ "หน้า") อย่างไรก็ตามฉันเริ่มทำการปรับปรุงเล็กน้อยรวมถึงความสามารถในการเพิ่ม / ลบแท็บแบบไดนามิก (ก่อนหน้านี้ฉันโหลดตัวแก้ไข 6 ตัวบนหน้าเว็บ) ผู้ใช้อาจมี 1-7 แท็บ เมื่อผู้ใช้เพิ่มแท็บนั้นจะต้องเพิ่มอินสแตนซ์ของตัวแก้ไขในหน้า อย่างไรก็ตามไม่ว่าฉันจะพยายามอะไรฉันก็ไม่สามารถโหลดและแสดงผลได้อย่างถูกต้อง นี่คือ 2 สิ่งที่ฉันได้ลองไปแล้ว: สร้างไฟล์ PHP wp_editor()ที่มีบูตผู้ดูแลระบบรวมแล้วโหลดโปรแกรมแก้ไขด้วย จากนั้นฉันจะทำ jQuery $.loadเพื่อโทรหาหน้าและรวม HTML ที่เป็นผลลัพธ์ไว้ในพื้นที่ที่ต้องการแสดง วิธีนี้ใช้ไม่ได้ผลเนื่องจากปุ่มการจัดรูปแบบตัวแก้ไขหายไป (มันน่าสังเกตว่าการดึงหน้าขึ้นมาโดยตรงตัวแก้ไขจะแสดงและทำงานได้อย่างสมบูรณ์) โหลดเอดิเตอร์บนหน้าภายใน div ที่ซ่อนอยู่จากนั้นเมื่อเพิ่มแท็บแล้วให้ใช้ jquery เพื่อย้ายลงในตำแหน่ง สิ่งนี้จะโหลดตัวแก้ไขอย่างชาญฉลาด แต่คุณไม่สามารถใช้ปุ่มตัวแก้ไขใด ๆ (พวกเขาแสดง แต่ไม่ได้ทำอะไรเลย) และคุณไม่สามารถวางเคอร์เซอร์ของคุณในพื้นที่ข้อความ (อย่างไรก็ตามอยากรู้อยากเห็นว่าสลับไปยังโหมด HTML อนุญาตให้พิมพ์และโต้ตอบกับปุ่มโหมด HTML) ดังนั้นคำถามคือมีใครมีโชคเพิ่มบรรณาธิการผ่านสาย AJAX หรือไม่ …
22 ajax  wp-editor 

2
จะตรวจสอบว่าผู้ใช้ (ไม่ใช่ผู้ใช้ปัจจุบัน) เข้าสู่ระบบได้อย่างไร?
ฉันต้องแสดงสถานะออนไลน์ (ออนไลน์ / ออฟไลน์) สำหรับแต่ละหน้าผู้แต่ง (เทมเพลตหน้าผู้แต่งกำหนดเอง) is_user_logged_in () ใช้กับผู้ใช้ปัจจุบันเท่านั้นและฉันไม่พบวิธีการที่เกี่ยวข้องซึ่งกำหนดเป้าหมายไปที่ผู้เขียนปัจจุบันเช่น is_author_logged_in () ความคิดใด ๆ ตอบ Trick Pony นั้นใจดีมากพอที่จะเตรียมการเขียนโค้ดสำหรับฟังก์ชั่นสองถึงสามรายการโดยใช้ทรานเซสชั่นซึ่งเป็นสิ่งที่ฉันไม่เคยใช้มาก่อน http://codex.wordpress.org/Transients_API เพิ่มสิ่งนี้ไปยัง functions.php: add_action('wp', 'update_online_users_status'); function update_online_users_status(){ if(is_user_logged_in()){ // get the online users list if(($logged_in_users = get_transient('users_online')) === false) $logged_in_users = array(); $current_user = wp_get_current_user(); $current_user = $current_user->ID; $current_time = current_time('timestamp'); if(!isset($logged_in_users[$current_user]) || …
22 author  users  status 

4
ฉันจะรวมเครื่องมือแก้ไข TinyMCE ในส่วนหน้าได้อย่างไร
ฉันกำลังพยายามเพิ่มตัวแก้ไข TinyMCE ในส่วนหน้าของฉันจากที่ผู้ใช้สามารถโพสต์ แต่ไม่เคยมีโชคมาก่อน นี่คือรหัส: PHP: add_action('wp_print_scripts', 'my_enqueue_scripts'); function my_enqueue_scripts() { wp_enqueue_script( 'tiny_mce' ); if (function_exists('wp_tiny_mce')) wp_tiny_mce(); } javascript: jQuery(document).ready(function(){ tinyMCE.init({ mode : "textareas", theme : "simple", /*plugins : "autolink, lists, spellchecker, style, layer, table, advhr, advimage, advlink, emotions, iespell, inlinepopups, insertdatetime, preview, media, searchreplace, print, contextmenu, paste, directionality, fullscreen, …


5
ฉันจะอนุญาตให้บทบาท Editor เปลี่ยนการตั้งค่าธีมได้อย่างไร
ฉันเพิ่งตั้งค่าบล็อกใหม่สำหรับเพื่อนและคิดว่าเป็นการดีกว่าที่จะไม่ให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบแก่เขาในทันทีเพื่อเป็นการป้องกันไว้ก่อน ฉันสร้างผู้ใช้ใหม่เป็นบรรณาธิการดังนั้น แต่ฉันเห็นว่าผู้ใช้รายนี้ไม่สามารถเปลี่ยนการตั้งค่าชุดรูปแบบเช่นพื้นหลังและส่วนหัว มีวิธีง่าย ๆ ในการอนุญาตให้บทบาทของตัวแก้ไขแก้ไขการตั้งค่าชุดรูปแบบใด ๆ ใน Twenty Ten หรือ Child of it? โดยทั่วไปเขาควรจะสามารถทำสิ่งใดก็ได้ที่ผู้ดูแลระบบสามารถทำได้ ธีมอาจเปลี่ยนธีมได้

5
เพิ่มคลาส 'has_children' เป็น parent li เมื่อทำการแก้ไข Walker_Nav_Menu
ฉันกำลังเขียนคลาสวอล์คเกอร์ที่กำหนดเองสำหรับ wp_nav_menu และต้องการที่จะสามารถระบุได้ว่า li มีเมนูย่อยหรือไม่ ดังนั้นฉันต้องการมาร์กอัปของฉันเป็น: <li class="has_children [other-wordpress-classes]"> <a class="parent-link">Some item</a> <ul class="sub-menu"> ฉันรู้วิธีการเพิ่มและลบชั้นเรียนได้ดีฉันแค่ไม่พบสิ่งใดที่จะบอกฉันว่ารายการปัจจุบันมีรายการเด็ก ความคิดใด ๆ ขอบคุณล่วงหน้า.
22 menus 

7
แถบเครื่องมือแก้ไข TinyMCE เสริมแถบ <p> และแท็ก <br>
สวัสดีฉันได้เพิ่ม TinyMCE ลงใน textareas บางรายการที่แสดงในกล่องเมตาที่กำหนดเอง การจัดรูปแบบทั้งหมดทำงานได้อย่างสมบูรณ์แบบยกเว้นว่าตัวแก้ไขจะไม่บันทึก&lt;p&gt;หรือ&lt;br/&gt;แท็ก มันไม่รักษาเส้นแบ่ง TinyMCE มีการติดตั้งดังนี้: wp_tiny_mce(true, array('editor_selector' =&gt; $field['class'] ) ); '&lt;textarea name="', $field['id'], '" class="', $field['class'], '" id="', $field['id'], '" cols="60" rows="8" style="width:97%"&gt;', $meta ? esc_html($meta) : $field['std'], '&lt;/textarea&gt;'; และนั่นก็ใช้ได้ดีอย่างสมบูรณ์ ปุ่มการจัดรูปแบบทั้งหมดทำงานได้ดียกเว้นสำหรับ&lt;P&gt;และ&lt;BR&gt;แท็ก ฉันไม่แน่ใจว่าตัวแก้ไขกำลังลอกออกก่อนหรือหลังการบันทึกเมตาโพสต์ ไอเดีย?

4
วิธีการรายการเมนูกำหนดรหัสแบบกำหนดเอง
มีวิธีใดบ้างที่ฉันสามารถกำหนดรหัสรายการเมนูที่กำหนดเองได้ยากเมื่อติดตั้งชุดรูปแบบครั้งแรก ฉันกำลังสร้างชุดรูปแบบซึ่งจะสร้างหน้าทั่วไปบางอย่างโดยอัตโนมัติเมื่อติดตั้ง ดังนั้นฉันต้องรู้ว่าฉันสามารถเพิ่มลงในเมนูกำหนดเองของ Wordpress ได้หรือไม่ดังนั้นลูกค้าไม่จำเป็นต้องเพิ่มด้วยตนเอง ในคำอื่น ๆ : วิธีการแทรก / สร้างรายการเมนูที่กำหนดเองโดยทางโปรแกรม? แจ้งให้เราทราบหากมีสิ่งใดไม่ชัดเจน คู่มือหน้า codex ที่เหมาะสมยินดีต้อนรับ ขอบคุณ! อัปเดต:ลองรหัสจากที่นี่กำหนดเป้าหมายเมนูเฉพาะด้วย wp_nav_menu_items การลงทะเบียนเมนู: function register_my_menus() { register_nav_menus( array('main-menu' =&gt; __( 'Main Menu' ) ) ); } add_action( 'init', 'register_my_menus' ); การใช้เทมเพลต: &lt;?php wp_nav_menu( array( 'theme_location' =&gt; 'main-menu' ) ); ?&gt; รหัสสำหรับการเพิ่มรายการใหม่: function new_nav_menu_items($items) { …
22 menus 

4
เพิ่มฟิลด์ที่กำหนดเองในหมวดหมู่
ฉันต้องการเพิ่มฟิลด์ที่กำหนดเองลงในหมวดหมู่ที่แน่นอน หมวดหมู่มีฟิลด์ต่อไปนี้เท่านั้น: ชื่อ: กระสุน: ต้นทาง: รายละเอียด: เนื่องจากฉันมีไซต์ซีรี่ส์ทีวีฉันต้องการเพิ่มฟิลด์เพิ่มเติมฉันต้องการสิ่งนี้เมื่อฉันสร้างหมวดหมู่ใหม่ (หมวดหมู่ = ซีรี่ส์) ชื่อ: ศิลปิน: ปี: ประเภท: ประเภท: สรุป: กระสุน: ต้นทาง: รายละเอียด: และอื่น ๆ ... ความช่วยเหลือใด ๆ โปรด? ขอบคุณล่วงหน้า.
22 categories 

8
วิธีการปิดการใช้งานปลั๊กอินที่เปิดใช้งานเครือข่ายสำหรับเว็บไซต์เดียว?
ฉันอยู่ในขั้นตอนการตั้งค่าเครือข่ายขนาดใหญ่หลายแห่ง (ที่อาจเกิดขึ้น) และฉันกำลังมองหาที่จะทำให้มันง่ายที่สุดในตอนนี้เพื่อเพิ่มและกำหนดค่าไซต์เมื่อจำเป็น ขณะนี้ฉันอยู่ในช่วงที่ฉันจัดการกับปลั๊กอิน ด้วย Multisite ฉันทราบวิธีการต่าง ๆ ที่คุณสามารถเปิดใช้งานปลั๊กอินได้ ใส่ปลั๊กอินเข้าไป/pluginsเปิดใช้งานในทุกไซต์โดยไม่ได้ตั้งใจ ใส่ปลั๊กอิน/pluginsใช้ 'เครือข่ายเปิดใช้งาน' เพื่อเปิดใช้งานในทุกไซต์ ใส่ปลั๊กอินเข้าไป/mu-pluginsโดยอัตโนมัติทุกไซต์ ตอนนี้ฉันได้เล่นกับการตั้งค่าและฉันต้องการเปิดใช้งาน Akismet ในทุกไซต์ยกเว้นหนึ่งหรือสอง ฉันคิดว่าฉันจะสามารถเปิดใช้งานปลั๊กอินเครือข่ายแล้วปิดการใช้งานในเว็บไซต์เดียว แต่ฉันไม่สามารถทำได้ - ถ้าฉันใช้เครือข่ายเปิดใช้งานมีเพียงตัวเลือกที่จะ 'ปิดการใช้งานเครือข่าย' - ซึ่งปิดการใช้งานปลั๊กอิน เว็บไซต์ทั้งหมด มีวิธีที่จะมีฟังก์ชั่นที่ใช้งานง่ายของการเปิดใช้งานเครือข่าย แต่ยังคงมีความสะดวกสบายในการปิดใช้งานปลั๊กอินในแต่ละไซต์หรือไม่?
22 multisite 

2
จะแสดงกล่องเมตาที่กำหนดเองในหน้าจอ“ แก้ไขด่วน” ได้อย่างไร?
ฉันใช้ add_meta_box () เพื่อเพิ่มเมตาบ็อกที่กำหนดเองลงในหน้าต่างแก้ไข WordPress ในทั้งหน้าและโพสต์ ฉันจะทำให้กล่องเมตานี้แสดงบนหน้าจอ "แก้ไขด่วน" ได้อย่างไร โดยหลักการแล้วฉันต้องการให้ปรากฏทางด้านขวาของตัวเลือกหมวดหมู่

2
ตรวจสอบว่า WP ทำงานภายใต้ WP-CLI
ฉันใช้เครื่องมือWP-CLI ที่ยอดเยี่ยม เนื่องจากการพึ่งพาตัวแปรสภาพแวดล้อม Apache สำหรับกรณีการใช้งานเฉพาะฉันต้องเปิดใช้งานโค้ดจำนวนเล็กน้อยเพื่อรันเฉพาะเมื่อทำงานภายใต้ WP-CLI ฉันจะตรวจสอบว่า WP ทำงานภายใต้ WP-CLI ได้อย่างไร ในกรณีเฉพาะนี้ฉันสามารถตรวจสอบว่ามีตัวแปรสภาพแวดล้อม Apache ในคำถามหรือไม่ อย่างไรก็ตามฉันต้องการทราบวิธีการตรวจสอบทั่วไปที่มากขึ้น ขอขอบคุณ.
22 wp-cli 

4
wp_query ส่งคืนเมตาโพสต์ในคำขอเดียวได้หรือไม่
ฉันต้องการสร้าง wp_query ที่จะส่งคืนเมตาโพสต์ภายในpostsอาเรย์ $args = array ( 'post_type' =&gt; 'page', 'meta_key' =&gt; 'someMetaKeyName', ); // The Query $query = new WP_Query( $args ); ส่งคืนสิ่งที่ต้องการ: ในขณะที่คุณเห็นโพสต์ไม่มีข้อมูลเมตาใด ๆ เป็นไปได้หรือไม่ที่จะรวมข้อมูลเมตาในอาเรย์ที่ส่งคืนด้วย PS ฉันไม่ต้องการ wp_queries เพิ่มเติมเนื่องจากเหตุผลด้านประสิทธิภาพ

6
จัดทำคอร์ jQuery ในส่วนท้ายหรือไม่
ฉันมีสิ่งนี้ในfunctions.phpไฟล์ของฉันและฉันไม่สามารถรับ jQuery เพื่อโหลดในส่วนท้าย includesโหลดไฟล์ในการปรับส่วนท้ายแม้ว่า ฉันต้องทำอะไรอีก function starter_scripts() { wp_enqueue_style( 'starter-style', get_stylesheet_uri() ); wp_enqueue_script( 'jquery', '', '', '', true ); wp_enqueue_script( 'includes', get_template_directory_uri() . '/js/min/includes.min.js', '', '', true ); } add_action( 'wp_enqueue_scripts', 'starter_scripts' );

2
เพิ่มฟิลด์ที่กำหนดเองหลายรายการในหน้าการตั้งค่าทั่วไป
สิ่งที่ฉันต้องการจะทำคือการเพิ่มฟิลด์ที่กำหนดเองสองสามอย่างให้กับการตั้งค่าทั่วไป นี่คือรหัสที่ฉันใช้ มันใช้งานได้ดี แต่ฉันไม่สามารถคิดได้ว่าจะเพิ่มฟิลด์เพิ่มเติมได้อย่างไร ฉันต้องการสร้างสองฟิลด์สำหรับตอนนี้หนึ่งฟิลด์สำหรับหมายเลขโทรศัพท์และอีกฟิลด์หนึ่งสำหรับที่อยู่: function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); add_settings_field('my_first_field', '&lt;label for="my_first_field"&gt;'.__('My Field' , 'my_first_field' ).'&lt;/label&gt;' , 'print_custom_field', 'general'); } function print_custom_field() { $value = get_option( 'my_first_field', '' ); echo '&lt;input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" /&gt;'; } add_filter('admin_init', 'register_fields'); วิธีเดียวที่ฉันจัดการเพื่อให้มันทำงานได้กับหลาย ๆ ฟิลด์คือการทำซ้ำทุกอย่าง ดังนั้นมันจะเป็นดังนี้: function …

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