วิธีสร้างปลั๊กอิน WordPress ของคุณเอง

เผยแพร่แล้ว: 2016-07-13

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

ปลั๊กอินไปไหน?

โครงสร้างโฟลเดอร์ WordPress

ก่อนเริ่มการพัฒนา คุณควรรู้ว่าปลั๊กอินอยู่ที่ไหน มาดูโครงสร้างโฟลเดอร์ WordPress กันที่ไดเร็กทอรีแอพพื้นฐานกัน ภายในโฟลเดอร์ wp-content คุณจะเห็นไดเร็กทอรีปลั๊กอิน นี่คือที่ที่ปลั๊กอินทั้งหมดของคุณจะใช้งานได้

ปลั๊กอินในโฟลเดอร์นี้สามารถเป็นไฟล์เดียวหรือในไดเรกทอรีย่อย ปลั๊กอินขนาดเล็กมักต้องการไฟล์ .php ไฟล์เดียวเท่านั้น ปลั๊กอินที่ซับซ้อนอาจมีไฟล์หลายประเภท (HTML, CSS และ JavaScript เป็นไปได้ทั้งหมด) การสร้างไดเร็กทอรีย่อยจะเป็นประโยชน์ในการเก็บไฟล์ต่างๆ พร้อมกับฟังก์ชัน .php ของปลั๊กอิน

วิธีสร้าง wordpress-plugin-plugin-file-path

การดำเนินการและตัวกรอง

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

ก่อนการพัฒนาปลั๊กอิน

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

<?php

/**

* Plugin Name: Example Plugin

* Plugin URI: http://mysite.com/

* Description: A brief description about your plugin.

* Version: 1.0 (or whatever current version your plugin is on)

* Author: Plugin Author's Name

* Author URI: Author's website

* License: A "Slug" license name e.g. GPL12

*/

ปลั๊กอินที่ง่ายมาก

การเริ่มต้นเล็ก ๆ เป็นวิธีที่ดีในการทำให้การสร้างปลั๊กอินง่ายขึ้น มาสร้างตัวอย่างง่ายๆ กัน การดำเนินการและตัวกรองทำให้สิ่งต่างๆ เกิดขึ้นได้ ให้เพิ่มบรรทัดข้อความหลังโพสต์ทั้งหมดเพื่อทดสอบสิ่งต่างๆ

การทำงานในสภาพแวดล้อมการพัฒนาเป็นเรื่องที่ดีเสมอ และนี่เป็นสิ่งสำคัญอย่างยิ่งเมื่อคุณทดลองกับปลั๊กอิน

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

add_action( 'the_content', 'test_example_text' );

function test_example_text ( $content ) {
    return $content .= '<p>This is my first plugin!</p>';
}

นี่คือตัวอย่างของการทำงานหนัก เมื่อเชื่อมต่อกับ the_content การดำเนินการนี้จะได้ผลเมื่อ WordPress แสดงเนื้อหาโพสต์ WordPress เรียกใช้ฟังก์ชัน test_example_text ที่กำหนดไว้ด้านล่างการ add_action call

เห็นการทำงานของปลั๊กอิน

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

How-to-build-wordpress-plugin-plugin-listing

วิธีการสร้าง wordpress-plugin-first-plugin

ปลั๊กอินที่ซับซ้อนมากขึ้น

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

ประเภทโพสต์ที่กำหนดเองใน WordPress คืออะไร?

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

วิธีสร้างเว็บไซต์พอร์ตโฟลิโอบน WordPress

การมีหน้าพอร์ตโฟลิโอบนเว็บไซต์สามารถนำไปใช้ได้หลายอย่าง ตามความหมายแล้ว เป็นสิ่งที่ใช้เพื่อเก็บเอกสารต่างๆ เช่น กระดาษ แผนที่ ภาพวาด ภาพถ่าย ฯลฯ ผลงานในด้านการเงิน อ้าง...

คุณสามารถเรียกประเภทโพสต์ที่กำหนดเองได้ตามที่คุณต้องการ ตัวอย่างเช่น หากคุณเปิดเว็บไซต์เกี่ยวกับอาหาร คุณสามารถสร้างประเภทโพสต์สูตรอาหารที่มีประโยชน์ได้ โพสต์ประเภทนี้สามารถมีฟิลด์ที่กำหนดเองที่แตกต่างกันโดยมีโครงสร้างหมวดหมู่ที่กำหนดเอง

การสร้างประเภทโพสต์ที่กำหนดเอง

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

เราจะสร้างปลั๊กอินสำหรับประเภทโพสต์แบบกำหนดเองที่เรียกว่า "สูตรอาหาร" เพื่อสาธิตพื้นฐานในการสร้างปลั๊กอินที่ซับซ้อนมากขึ้น

รุ่นพื้นฐาน

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

function recipe_custom_post_type() {
	register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );

How-to-build-wordpress-plugin-custom-post-type-01

เวอร์ชันขั้นสูง

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

วิธีสร้างเวิร์ดเพรสปลั๊กอินเพิ่มใหม่โพสต์

ทีนี้ มาดูสิ่งที่เราเพิ่งทำไปและใช้สิ่งนี้แทน:

add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );

function recipe_custom_post_type() {
	$labels = array(
		'name'               => 'Recipes',
		'singular_name'      => 'Recipe',
		'menu_name'          => 'Recipe',
		'name_admin_bar'     => 'Recipe',
		'add_new'            => 'Add New',
		'add_new_item'       => 'Add New Recipe',
		'new_item'           => 'New Recipe',
		'edit_item'          => 'Edit Recipe',
		'view_item'          => 'View Recipe',
		'all_items'          => 'All Recipes',
		'search_items'       => 'Search Recipes',
		'parent_item_colon'  => 'Parent Recipes:',
		'not_found'          => 'No recipes found.',
		'not_found_in_trash' => 'No recipes found in Trash.'
	);

	$args = array( 
		'public'      => true, 
		'labels'      => $labels,
		'rewrite'		=> array( 'slug' => 'recipe' ),
		'has_archive'   => true,
		'menu_position' => 20,
		'menu_icon'     => 'dashicons-carrot',
		'taxonomies'		=> array( 'post_tag', 'category' ),
		'supports'      => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
	);
    	register_post_type( 'recipe', $args );
}

function recipes_messages( $messages ) {
	$post = get_post();

	$messages['recipe'] = array(
		0  => '',
		1  => 'Recipe updated.',
		2  => 'Custom field updated.',
		3  => 'Custom field deleted.',
		4  => 'Recipe updated.',
		5  => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
		6  => 'Recipe published.',
		7  => 'Recipe saved.',
		8  => 'Recipe submitted.',
		9  => sprintf(
			'Recipe scheduled for: <strong>%1$s</strong>.',
			date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
		),
		10 => 'Recipe draft updated.'
	);

	return $messages;
}


วิธีสร้าง wordpress-plugin-add-new-recipe

ดูว่าข้อความด้านบนตอนนี้อ่านว่า "เพิ่มสูตรใหม่" อย่างไร? เราทำสิ่งนั้นโดยปรับแต่ง "เพิ่มรายการใหม่" ด้วยข้อความที่ต้องการ

วิธีการสร้าง wordpress-plugin-ui-elements

วิธีสร้าง wordpress-plugin-reciep-posts

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

How-to-build-wordpress-plugin-ui-new

โพสต์ข้อความโต้ตอบประเภท

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

วิธีสร้าง wordpress-plugin-recipe-text

เมื่อคุณทำปลั๊กอินเสร็จแล้ว คุณสามารถเผยแพร่ใน WordPress Plugin Directory เพื่อให้ผู้อื่นสามารถดาวน์โหลดได้เช่นกัน หากเป็นกรณีนี้ การรวม readme.txt จะเป็นประโยชน์สำหรับผู้ที่กำลังค้นหาปลั๊กอินเช่นคุณ โดยทั่วไป ไฟล์นี้จะรวมชื่อของคุณและสิ่งที่ปลั๊กอินทำ แต่คุณยังสามารถรวมรายละเอียดเกี่ยวกับการแก้ไขแต่ละครั้งและข้อมูลเฉพาะเกี่ยวกับการอัปเดตได้

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

วิธีการสร้าง wordpress-plugin-ebook-cta