ฉันจะวางข้อมูลโค้ดที่ฉันพบที่นี่หรือที่อื่นบนเว็บได้ที่ไหน


34

โพสต์จำนวนมากที่นี่หรือที่อื่นมีรหัส แต่พวกเขาไม่ได้บอกว่าจะใส่ไว้ที่ไหน

ตัวอย่าง:

ฉันพบโพสต์นี้: ฉันจะปิดโพสต์เปลี่ยนเส้นทาง 301 (ไม่ใช่บัญญัติ) ได้อย่างไร
ฉันเป็นมือใหม่ด้วย PHP ฉันควรวางรหัสจากคำตอบที่ไหน?


1
ฉันใช้เสรีภาพในการทำให้คำถามของคุณเป็นภาษาท้องถิ่นน้อยลงดังนั้นเราจึงมีโพสต์ในอนาคตที่ตอบคำถามที่คล้ายกัน หากคุณคิดว่าไม่เป็นไรให้ใช้ลิงค์ย้อนกลับในประวัติการแก้ไข
fuxia

1
คุณสามารถลองแสดงความคิดเห็นกับคำถามนั้นและถามที่นั่นได้
JimmyPena

คำตอบ:


34

เมื่อใดก็ตามที่คุณพบชิ้นส่วนของรหัสโดยไม่มีคำแนะนำในการติดตั้งที่ชัดเจนอาจเป็นปลั๊กอิน ตัวอย่างที่คุณให้นั้นเป็นสิ่งที่ดีเพราะเป็นกรณีที่พบบ่อยที่สุด:

add_action('template_redirect', 'remove_404_redirect', 1);
function remove_404_redirect() {
// do something
}

หากต้องการใช้ตัวอย่างข้อมูลให้วางลงในปลั๊กอิน:

  1. remove_404_redirect.phpสร้างไฟล์ใหม่ชื่อมันตัวอย่างเช่น
  2. เขียนส่วนหัวของปลั๊กอินแบบง่ายลงในไฟล์ที่จุดเริ่มต้น ใช้ URL ที่คุณพบรหัสเป็นPlugin URLและผู้เขียนรหัสเป็นPlugin Author:

    <?php
    /**
     * Plugin Name: Remove 404 redirect
     * Description: Disable redirects to similar posts.
     * Plugin URI:  https://wordpress.stackexchange.com/questions/44740/how-do-i-turn-off-301-redirecting-posts-not-canonical
     * Author:      William
     * Author URI:  https://wordpress.stackexchange.com/users/9942/william
     */
  3. ใส่รหัสที่คุณต้องการใช้ด้านล่างส่วนหัวของปลั๊กอิน

  4. ติดตั้งปลั๊กอินใหม่

นั่นคือทั้งหมดที่คน

คุณสามารถเพิ่มรหัสในธีมของfunctions.phpคุณ แต่นั่นไม่ใช่ความคิดที่ดี:

  • โดยทั่วไปรหัสไม่ได้มีวัตถุประสงค์เพื่อเปลี่ยนการแสดงภาพข้อมูลของเว็บไซต์ของคุณ แต่นั่นเป็นจุดประสงค์ของธีมเท่านั้น อย่าผสมผสานความรับผิดชอบ
  • รหัสในส่วนfunctions.phpนี้ไม่สามารถปิดแยกได้ หากรหัสพักหนึ่งวันคุณต้องแก้ไขfunctions.phpอีกครั้งหรือคุณต้องเปลี่ยนธีม หากคุณต้องการใช้ชุดรูปแบบอื่นคุณต้องคัดลอกและวางรหัสนั้นอีกครั้ง
  • หากคุณวางสนิปเพตมากขึ้นเรื่อย ๆfunctions.phpคุณจะได้รับความยุ่งเหยิงในช่วงเวลาที่ผ่านมา

ที่เกี่ยวข้อง: ใส่รหัสของฉันที่ไหน: plugin หรือ functions.php


ขอขอบคุณ! มันทำงานเหมือนจับใจ และขอขอบคุณที่ทำให้โพสต์เป็นภาษาท้องถิ่นน้อยลง ฉันจะแชร์ไฟล์ปลั๊กอินของฉันกับคนอื่น ๆ ได้อย่างไร?
Carl

1
คุณสามารถเผยแพร่บน wordpress.org หรือบริการโฮสติ้งโค้ดฟรีเช่น GitHub แต่ฉันจะถามผู้เขียนก่อนที่จะทำ หากต้องการระบุว่าคำตอบสามารถแก้ไขปัญหาของคุณได้โดยคลิกเครื่องหมายถูกที่✔บนคำตอบนั้นเพื่อให้ผู้อ่านรายอื่นเห็นได้ทันที
fuxia

ในการสร้างปลั๊กอินเช่นนี้ฉันต้องวางไฟล์ลงในโฟลเดอร์แล้วบีบอัด / บีบอัดหรือว่าตัวติดตั้งปลั๊กอินจะทำงานกับ php แบบสแตนด์อโลนด้วยหรือไม่
OC2PS

นอกจากนี้จะสร้างปลั๊กอินที่มีคำสั่งง่ายๆแบบง่าย ๆ เช่น add_filter ('flush_rewrite_rules_hard', '__return_false'); งาน?
OC2PS

1
@ OC2PS ไม่จุดสิ้นสุดของไฟล์คือจุดสิ้นสุดของโปรแกรม
fuxia

16

ฉันเป็นผู้พัฒนาปลั๊กอินที่ให้คุณเพิ่มโค้ดขนาดสั้นลงในไซต์ WordPress ผ่านส่วนต่อประสานผู้ดูแลระบบ

เพิ่มอินเทอร์เฟซแบบกราฟิกซึ่งคล้ายกับเมนูปลั๊กอินสำหรับการจัดการตัวอย่าง ตัวอย่างสามารถเปิดใช้งานหรือปิดการใช้งานได้รับมอบหมายชื่อและคำอธิบายและจัดหมวดหมู่โดยใช้แท็ก พวกเขายังสามารถสำรองและโอนระหว่างไซต์โดยใช้คุณสมบัติการนำเข้า / ส่งออก

การจัดการตัวอย่างที่มีอยู่

การแก้ไขตัวอย่าง

ภาพหน้าจอเพิ่มเติม

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับปลั๊กอินรหัสเกร็ดเล็กเกร็ดน้อยเกี่ยวกับWordPress.orgและดูรหัสบนGitHub


6

โค้ดที่อ้างถึงในลิงก์จะต้องอยู่ในไฟล์ functions.php ของธีมของคุณไม่ใช่ใน canonical.php คุณควรหลีกเลี่ยงการแก้ไขไฟล์ WP หลัก คุณไม่จำเป็นต้องเขียนทับหรือแสดงความคิดเห็นรหัสอื่น ๆ

ทำสำเนาสำรองไฟล์ฟังก์ชั่น PHP ของคุณก่อนที่จะแก้ไขเพราะแม้แต่ข้อผิดพลาดทางไวยากรณ์อย่างง่าย ๆ ใน functions.php ก็สามารถทำลายไซต์ทั้งหมดของคุณได้


ฉันไม่ต้องการแก้ไขไฟล์ WP หลักใด ๆ ขอขอบคุณสำหรับความช่วยเหลือของคุณ.
Carl

7
@Carl เขาชัดเจนว่าจะไม่แก้ไขไฟล์หลัก น่าเศร้าที่ฉันไม่สามารถdownvoteความคิดเห็น ...
Kaiser

2

หากคุณใช้ Jupiter WordPress Theme คุณสามารถทำได้โดยการเพิ่มโค้ดตัวอย่างให้กับฟังก์ชั่นลูกของคุณฟังก์ชั่น PHP และเริ่มแทนที่ hooks, filter และ shortcodes ดังที่อธิบายไว้ที่นี่:

https://themes.artbees.net/docs/overriding-shortcodes/

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