เนื่องจากคุณไม่คุ้นเคยกับโค้ด PHP เลย ฉันจะให้ความรู้เบื้องต้นเกี่ยวกับการเขียนโค้ดภายใน Wordpress API
ก่อนอื่น คุณต้องรู้ความแตกต่างระหว่างฟังก์ชันและตัวแปรก่อน ตัวแปรคือเอนทิตีเดียวที่มีไว้เพื่อแสดงค่าที่กำหนดเอง คุณค่าสามารถเป็นอะไรก็ได้ ตัวเลข ชื่อของบุคคล หรือข้อมูลที่ซับซ้อน
ฟังก์ชั่นคือสิ่งที่ดำเนินการชุดของการกระทำเพื่อส่งกลับ - หรือ ส่งกลับ - ตัวแปร หรือแก้ไขตัวแปรที่กำหนด
<?php
$a = 1; //Number
$b = 'b'; //String *note the quotes around it*
$c = my_function(); //Call to a function called my_function
echo $a; //1
echo $b; //b
echo $c; //oh, hello
function my_function()
{
return 'oh, hello';
}
?>
Wordpress ใช้การดำเนินการและระบบกรองของตัวเองอย่างหลวมๆ ตามสไตล์ Event-Driven Programming
ความหมายก็คือ Wordpress กำลัง "รับฟัง" เหตุการณ์บางอย่างที่จะเกิดขึ้น และเมื่อเป็นเช่นนั้น Wordpress จะเรียกใช้ฟังก์ชันที่แนบมากับเหตุการณ์นั้น (หรือที่เรียกว่าการโทรกลับ) เหล่านี้คือ "การดำเนินการ" และ "ตัวกรอง" แล้วความแตกต่างคืออะไร?
การดำเนินการคือฟังก์ชันที่ทำสิ่งต่างๆ
ตัวกรองคือฟังก์ชันที่ส่งคืนสิ่งต่างๆ
แล้วทั้งหมดนี้เข้ากับปัญหาของคุณได้อย่างไร?
แบบฟอร์มการติดต่อ 7 มีตัวกรองของตัวเองที่ส่งคืน URL ของตำแหน่งที่จะส่งข้อมูลตามแบบฟอร์ม
ดังนั้น เรามาดูข้อมูลพื้นฐานของ Filter Hook กันดีกว่า
add_filter('hook_name', 'your_filter');
- add_filter เป็นฟังก์ชันที่บอก Wordpress ว่าจำเป็นต้องรับฟังเหตุการณ์ใดเหตุการณ์หนึ่ง
- 'hook_name' คือเหตุการณ์ที่ Wordpress กำลังรับฟัง
- 'your_filter' เป็นฟังก์ชัน - หรือการโทรกลับ - ที่ถูกเรียกเมื่อเหตุการณ์ 'hook_name' เริ่มทำงาน
ลิงก์ไปยังเธรดก่อนหน้าระบุว่าชื่อ hook ที่คุณต้องใช้คือ 'wpcf7_form_action_url' นั่นหมายความว่าสิ่งที่คุณต้องทำคือโทรไปที่ add_filter ตั้งค่า 'hook_name' เป็น 'wpcf7_form_action_url' จากนั้นตั้งค่า 'your_filter' เป็นชื่อของฟังก์ชันที่คุณจะตั้งค่าเป็นการโทรกลับของคุณ
เมื่อเสร็จแล้ว คุณเพียงแค่ต้องกำหนดฟังก์ชันด้วยชื่อที่ตรงกับสิ่งที่คุณใส่แทน 'your_filter' และตรวจสอบให้แน่ใจว่าส่งกลับ URL เพื่อแก้ไขการทำงานของแบบฟอร์ม
มาถึงปัญหา: นี่จะเป็นการเปลี่ยนแปลงแบบฟอร์มทั้งหมดของคุณ แต่สิ่งแรกสุดคือ ดูว่าคุณสามารถสร้างโค้ดที่ใช้งานได้ด้วยตัวเองหรือไม่ เพียงเขียนโค้ดของคุณใน functions.php และแจ้งให้เราทราบว่าผลเป็นอย่างไร
อัปเดต:
ความจริงที่ว่าคุณสามารถทำมันได้อย่างรวดเร็วนั้นยอดเยี่ยมมาก และแสดงให้เห็นถึงความพยายามในการค้นคว้าที่คุณทุ่มเทให้กับเรื่องนี้
ใส่ทั้งหมดนี้ลงใน functions.php
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url()
{
return 'wheretopost.asp';
}
ดังที่กล่าวไว้ก่อนหน้านี้ว่าจะส่งผลต่อแบบฟอร์มทั้งหมดของคุณ หากสิ่งนี้ควรจะส่งผลต่อแบบฟอร์มบนเพจที่กำหนด คุณสามารถดำเนินการดังนี้:
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $post;
$id_to_change = 1;
if($post->ID === $id_to_change)
return 'wheretopost.asp';
else
return $url;
}
สิ่งที่คุณต้องทำคือเปลี่ยนค่าของ $id_to_change เป็นตัวเลขที่แสดงถึง ID ของโพสต์/เพจที่คุณพยายามจะส่งผล ตัวอย่างเช่น หากคุณมีเพจเกี่ยวกับที่คุณต้องการเปลี่ยน URL การดำเนินการ คุณสามารถค้นหาหมายเลข ID ของเพจเกี่ยวกับของคุณได้ในแดชบอร์ดผู้ดูแลระบบ (เพียงไปที่เครื่องมือแก้ไขเพจแล้วดู ID ใน URL ของคุณ number) และเปลี่ยน 1 เป็นเลข ID อะไรก็ได้
หวังว่านี่จะช่วยคุณได้ และขอให้โชคดี
person
maiorano84
schedule
06.01.2013