-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
wordpress產(chǎn)品列表插件(wordpress產(chǎn)品展示插件)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于wordpress產(chǎn)品列表插件的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、有哪些實(shí)用的WordPress 插件值得推薦
可以加我好友發(fā)地址給你
二、如何利用WordPress創(chuàng)建自定義注冊表單插件
WordPress默認(rèn)的注冊表單僅由兩個字段組成—-用戶名和郵箱。
這個僅有的用戶名和郵箱表單字段使得注冊速度非常的簡單。首先,你輸入一個用戶名,然后輸入郵箱,這個郵箱就是用來接收密碼的。接下來,你使用郵箱接收到的密碼登陸站點(diǎn),并且完成個人資料,把密碼修改成簡單易記得。
僅僅是在站點(diǎn)注冊,而不是讓用戶區(qū)經(jīng)歷這些壓力,那為什么除了用戶名和郵箱之外,不提供一個直接的、包含一些額外重要的表單字段,例如密碼、個人的URL、個人簡介、昵稱和他們的姓名的注冊表單供用戶使用呢?
這對于像Tuts+的多用戶網(wǎng)站是非常有用的。
在這篇文章中,我們將使用下列的表單字段建立一個自定義的表單注冊插件:
username
password
website URL
first name
last name
nickname
biography (or an about section)
這個自定義表單插件可以通過使用短代碼和聯(lián)系模板整合到WordPress中。
利用短代碼模板,你可以在你的站點(diǎn)中創(chuàng)建一個正式的注冊頁面。你也可以再一篇發(fā)表的文章中是用短代碼模板,這樣用戶就可以在閱讀完你的文章之后進(jìn)行注冊。
如果你想添加一個注冊表單在你網(wǎng)站側(cè)邊欄的某個具體位置,你可以對WordPress主題中僅僅期望放置標(biāo)簽?zāi)0宓奈恢眠M(jìn)行編輯,來創(chuàng)建需要的注冊表單。
在創(chuàng)建之前,需要注意的是,用戶名、密碼和電子郵件字段是必需的。
當(dāng)我們編寫驗(yàn)證函數(shù)時,我們將強(qiáng)制執(zhí)行這些規(guī)則。
構(gòu)建插件
正如說的那樣,我們開始對插件編碼。首先,包含插件的頭部:
<?php
/*
Plugin Name: Custom Registration
Plugin URI: http://code.tutsplus.com
Description: Updates user rating based on number of posts.
Version: 1.0
Author: Agbonghama Collins
Author URI: http://tech4sky.com
*/
接下來,我們創(chuàng)建一個包含注冊表單的HTML代碼的PHP函數(shù):
function registration_form( $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio ) {
echo '
<style>
div {
margin-bottom:2px;
}
input{
margin-bottom:4px;
}
</style>
';
echo '
<form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<div>
<label for="username">Username <strong>*</strong></label>
<input type="text" name="username" value="' . ( isset( $_POST['username'] ) ? $username : null ) . '">
</div>
<div>
<label for="password">Password <strong>*</strong></label>
<input type="password" name="password" value="' . ( isset( $_POST['password'] ) ? $password : null ) . '">
</div>
<div>
<label for="email">Email <strong>*</strong></label>
<input type="text" name="email" value="' . ( isset( $_POST['email']) ? $email : null ) . '">
</div>
<div>
<label for="website">Website</label>
<input type="text" name="website" value="' . ( isset( $_POST['website']) ? $website : null ) . '">
</div>
<div>
<label for="firstname">First Name</label>
<input type="text" name="fname" value="' . ( isset( $_POST['fname']) ? $first_name : null ) . '">
</div>
<div>
<label for="website">Last Name</label>
<input type="text" name="lname" value="' . ( isset( $_POST['lname']) ? $last_name : null ) . '">
</div>
<div>
<label for="nickname">Nickname</label>
<input type="text" name="nickname" value="' . ( isset( $_POST['nickname']) ? $nickname : null ) . '">
</div>
<div>
<label for="bio">About / Bio</label>
<textarea name="bio">' . ( isset( $_POST['bio']) ? $bio : null ) . '</textarea>
</div>
<input type="submit" name="submit" value="Register"/>
</form>
';
}
請注意注冊字段是作為變量傳遞給上面的函數(shù)。在函數(shù)中,你會看到下面代碼的示例:
( isset( $_POST['lname'] ) ? $last_name : null )
這個三元操作符是檢查全局變量數(shù)組$_POST是否包含數(shù)據(jù),如果有數(shù)據(jù),就把填充的表單字段值保存以便進(jìn)入下一個字段。
除非你驗(yàn)證了表單數(shù)據(jù)并且清空了表單數(shù)據(jù),一個注冊表單才能算完成,否則就不算。因此,我們要創(chuàng)建一個名為 registration_validation的表單驗(yàn)證函數(shù)。
為了簡化驗(yàn)證的”痛苦”,我們可以使用WordPress中的 WP_Error 類。跟著我編寫驗(yàn)證函數(shù):
1、創(chuàng)建函數(shù),并將注冊表單的字段值作為函數(shù)的參數(shù)傳遞進(jìn)來
function registration_validation( $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio ) {
2、實(shí)例化 WP_Error 類,并把實(shí)例作為全局變量,以便于我們可以再函數(shù)的作用域之外使用。
global $reg_errors;
$reg_errors = new WP_Error;
3、記?。何覀冋f的用戶名、密碼和電子郵件是必填的,不要忽略了。為了執(zhí)行這個規(guī)則,我們需要檢查它們中任何一個是否為空。如果為空,我們就將錯誤信息追加給 WP_Error 類的實(shí)例。
if ( empty( $username ) || empty( $password ) || empty( $email ) ) {
$reg_errors->add('field', 'Required form field is missing');
}
4、我們也可以確保用戶名的字符個數(shù)不小于4
if ( 4 > strlen( $username ) ) {
$reg_errors->add( 'username_length', 'Username too short. At least 4 characters is required' );
}
5、檢查用戶名是否被注冊了
if ( username_exists( $username ) )
$reg_errors->add('user_name', 'Sorry, that username already exists!');
6、利用WordPress的 validate_username 函數(shù)確保用戶名是可用的
if ( ! validate_username( $username ) ) {
$reg_errors->add( 'username_invalid', 'Sorry, the username you entered is not valid' );
}
7、確保用戶輸入的密碼的字符個數(shù)不小于5
if ( 5 > strlen( $password ) ) {
$reg_errors->add( 'password', 'Password length must be greater than 5' );
}
8、檢查電子郵件是否有效
if ( !is_email( $email ) ) {
$reg_errors->add( 'email_invalid', 'Email is not valid' );
}
9、檢查電子郵件是否被注冊
if ( !is_email( $email ) ) {
$reg_errors->add( 'email_invalid', 'Email is not valid' );
}
10.、如果用戶填寫了網(wǎng)站字段,需要檢查其是否有效
if ( ! empty( $website ) ) {
if ( ! filter_var( $website, FILTER_VALIDATE_URL ) ) {
$reg_errors->add( 'website', 'Website is not a valid URL' );
}
}
11、最后,我們在WP_Error實(shí)例中對錯誤進(jìn)行循環(huán),并顯示個別的錯誤
if ( is_wp_error( $reg_errors ) ) {
foreach ( $reg_errors->get_error_messages() as $error ) {
echo '<div>';
echo '<strong>ERROR</strong>:';
echo $error . '<br/>';
echo '</div>';
}
}
這樣,驗(yàn)證函數(shù)就完成了。接下來是 complete_registration()函數(shù),用于處理用戶注冊。用戶的注冊真正完成是通過wp_insert_user函數(shù),
用戶的數(shù)據(jù)作為數(shù)據(jù)保存后可以作為此函數(shù)的參數(shù)。
function complete_registration() {
global $reg_errors, $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio;
if ( 1 > count( $reg_errors->get_error_messages() ) ) {
$userdata = array(
'user_login' => $username,
'user_email' => $email,
'user_pass' => $password,
'user_url' => $website,
'first_name' => $first_name,
'last_name' => $last_name,
'nickname' => $nickname,
'description' => $bio,
);
$user = wp_insert_user( $userdata );
echo 'Registration complete. Goto <a href="' . get_site_url() . '/wp-login.php">login page</a>.';
}
}
在上面的函數(shù)中,我們將$reg_errors作為WP_Error的實(shí)例,并將表單字段作為全局變量以便于可以再全局作用域中使用。
我們需要檢查$reg_errors是否包含任何錯誤,如果沒有錯誤,則將用戶注冊信息插入到WordPress的數(shù)據(jù)庫并用登陸鏈接來顯示注冊完成的信息。
然后,把所有我們之前創(chuàng)建的函數(shù)全部放在全局函數(shù) custom_registration_function()之中
function custom_registration_function() {
if ( isset($_POST['submit'] ) ) {
registration_validation(
$_POST['username'],
$_POST['password'],
$_POST['email'],
$_POST['website'],
$_POST['fname'],
$_POST['lname'],
$_POST['nickname'],
$_POST['bio']
);
// sanitize user form input
global $username, $password, $email, $website, $first_name, $last_name, $nickname, $bio;
$username = sanitize_user( $_POST['username'] );
$password = esc_attr( $_POST['password'] );
$email = sanitize_email( $_POST['email'] );
$website = esc_url( $_POST['website'] );
$first_name = sanitize_text_field( $_POST['fname'] );
$last_name = sanitize_text_field( $_POST['lname'] );
$nickname = sanitize_text_field( $_POST['nickname'] );
$bio = esc_textarea( $_POST['bio'] );
// call @function complete_registration to create the user
// only when no WP_error is found
complete_registration(
$username,
$password,
$email,
$website,
$first_name,
$last_name,
$nickname,
$bio
);
}
registration_form(
$username,
$password,
$email,
$website,
$first_name,
$last_name,
$nickname,
$bio
);
}
我需要說明一下全局函數(shù) custom_registration_function()中有哪些代碼。
首先,我通過檢查$_POST['submit']是否是空來確定表單是否提交。如果提交了,我就調(diào)用
registration_validation()函數(shù)來驗(yàn)證用戶提交的表單.
然后,確保表單數(shù)據(jù)的有效性并將有效的數(shù)據(jù)在表單字段域之后用一個變量命名。最后,調(diào)用
complete_registration()函數(shù)保存用戶。我需要調(diào)用registration_form()函數(shù)來顯示用戶注冊表單。
我之前提到過,我打算用短代碼模板來支持注冊插件。下面就是短代碼模的支持代碼:
// Register a new shortcode: [cr_custom_registration]
add_shortcode( 'cr_custom_registration', 'custom_registration_shortcode' );
// The callback function that will replace [book]
function custom_registration_shortcode() {
ob_start();
custom_registration_function();
return ob_get_clean();
}
到這里為止,我們已經(jīng)完成了插件
三、Wordpress內(nèi)容分類管理用什么插件?
不用插件,分類目錄
四、如何開發(fā)一個WordPress插件
新建一個插件
這個部分告訴你怎么把開發(fā)插件的理想變?yōu)楝F(xiàn)實(shí)。
名稱,文件和地方
插件名
你得先想一個名字,并且努力讓它獨(dú)一無二。在 Plugins 或者其他寶貝地方——Google或者百度先驗(yàn)證一下這個名字到底是不是獨(dú)一無二的。另外你的名字得讓別人明白你的插件是干什么的。
插件文件
下一步是創(chuàng)建一個PHP文件。按照原文奇怪的邏輯,你得先想好名字。這個名字還得是從插件名衍生過來的(其實(shí)是為你自己辨認(rèn)的)。舉個例子吧,比如說你的插件名字叫 "Fabulous Functionality",你的PHP名字可能是 fabfunc.php。另外不要用漢語拼音(這也是我加的),還要避免重名。人民群眾會把你的插件安裝到一個你也知道的叫wp-content/plugins/的地方,如果名字沖突豈不要悲劇了。
你也可以選擇把插件分割成幾個文件。 顯而易見一個php文件是必需的,同時還需要圖片、CSS、JavaScript、語言(當(dāng)然也可以沒有)。如果有很多文件,命名一個php和一個文件夾,例如 fabfunc and fabfunc.php。把你所有插件文件放到文件夾里,然后讓你的用戶相信只要把你的整個壓縮包解壓到 wp-content/plugins/就能正常使用你的勞動成果。
在本文的其余部分,“插件的PHP文件”是指主要插件的PHP文件,無論是在的wp-content/plugins/或子目錄。
Readme文件
如果你想將你的插件發(fā)布到http://wordpress.org/extend/plugins/, 你必須在插件包中建立一個標(biāo)準(zhǔn)格式readme.txt文件. 文件格式參見http://wordpress.org/extend/plugins/about/readme.txt.
主頁
最好為插件建立一個主頁,以介紹插件的功能、安裝方法、使用說明、適用的WordPress版本、插件更新信息等。
文件Headers
現(xiàn)在開始吧,首先讓我們從向PHP主文件中加入一些信息
標(biāo)準(zhǔn)插件信息
插件的主文件頂部必須包括一個標(biāo)準(zhǔn)插件信息頭。WordPress通過標(biāo)準(zhǔn)信息頭識別插件的存在,并把她加入到控制面板的插件管理頁面,這樣插件才能激活,載入插件,并運(yùn)行里面的函數(shù);如果沒有信息頭,插件將無法激活和使用。標(biāo)準(zhǔn)信息插件頭的格式為:
<?php
/*
Plugin Name: 插件名
Plugin URI: 插件的介紹或更新地址
Description: 插件描述
Version: 插件版本,例如 1.0
Author: 插件作者名稱
Author URI: 插件作者的鏈接
License: A "Slug" license name e.g. GPL2
*/
?>
標(biāo)準(zhǔn)信息頭至少要包括插件名稱,這樣WordPress才能識別你的插件。其他信息將顯示在控制面板插件管理頁面中。標(biāo)準(zhǔn)插件信息對各行順序沒有要求。
這樣的升級機(jī)制能夠正確地讀出你的插件版本,建議你選擇一個格式的版本號,不同版本之間,并堅持下去。例如,x.x中或x.x.x或xx.xx.xxx
注意:文件必須是 UTF-8 格式!
版權(quán)信息
通常我們還要在標(biāo)準(zhǔn)信息頭中加入插件的許可證信息。大多數(shù)插件使用GPL或GPLCompatibleLicenses許可。如果使用GPL許可,要求插件中包含以下信息:
<?php
/* Copyright 年份 作者名 (email : 你的郵箱)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
?>
開始編寫插件
現(xiàn)在是時候讓你的插件能干些什么了。這部分內(nèi)容包括插件開發(fā)的一般思路,而且介紹了開發(fā)插件需要做哪些工作。
WordPress插件鉤子
許多WordPress插件通過連接一個或多個WordPress插件鉤子來完成他們的功能。插件鉤子的運(yùn)行機(jī)理是,當(dāng)WordPress運(yùn)行到不同階段,WordPress會檢查當(dāng)前階段是否注冊了插件函數(shù),如果是,那么函數(shù)將被執(zhí)行。通過執(zhí)行插件函數(shù)改變了WordPress的默認(rèn)功能。
例如,在WordPress將日志標(biāo)題和post發(fā)送到瀏覽器前,會檢查是否有插件函數(shù)注冊了名為“the_title”的“filter”鉤子。如果是,標(biāo)題文本將會傳送到注冊函數(shù)中,注冊函數(shù)返回值將會傳送到瀏覽器。所以,如果要在日志標(biāo)題中加入一些信息,可以通過這種方式實(shí)現(xiàn)。
另一個例子是名為“wp_footer”的“action”鉤子。在WordPress的HTML頁腳創(chuàng)建之前,會檢查是否有插件注冊了名為“wp_footer”的“action”鉤子,如果是依次執(zhí)行她們。
在Plugin API了解更多如何注冊“filter”和“action”類型的鉤子函數(shù),及WordPress提供了那些插件鉤子。如果你發(fā)現(xiàn)WordPress沒有提供自己想要的鉤子,你可以建議WordPress加入這個鉤子,很多建議WordPress都會采納。具體方法參考Reporting Bugs。
模版標(biāo)簽
另一個通過插件加入新功能的方法是建立自定義的模版標(biāo)簽Template Tags。如果有人想用你的插件,可以在他們的主題中添加這些標(biāo)簽,邊欄,文章內(nèi)容段,或者任意的只要是適合這插件的地方。例如,一個給文章添加地理位置的插件可能定義了一個模板標(biāo)簽函數(shù)geotag_list_states()放在邊欄上,這里列表了所有在文章中關(guān)聯(lián)的州的名稱,并且還帶有插件提供的到這些州的文檔頁的鏈接。
定義一個自定義模板標(biāo)簽,僅需要寫一個PHP函數(shù),并且在你插件主頁或者插件的主PHP文件中聲明一下。聲明函數(shù)的時候,為這個函數(shù)提供一個示例來明確如果想要應(yīng)用這個函數(shù)需要加主題中加些什么文件是個相當(dāng)棒的主意。
保存插件數(shù)據(jù)到數(shù)據(jù)庫
大多數(shù)WordPress插件需要站點(diǎn)的所有者或者是博客的用戶輸入信息,然后在對話過程中保存起來,以便過濾器函數(shù)(filter)、動作函數(shù)(action)或者模板函數(shù)(Template)使用。這些信息必須保存在WordPress的數(shù)據(jù)庫中,以便下次使用。這里有兩種基本的方法用于保存插件的信息到數(shù)據(jù)庫里面。
使用WordPress的"option"機(jī)制(稍后會有介紹)。這種方法適合于保存一些相對小數(shù)量的靜態(tài)命名類數(shù)據(jù)--這類數(shù)據(jù)通常只需要網(wǎng)站的所有者在首次建立插件的時候輸入,以后很少改動。
文章屬性post meta(a.k.a. Custom Fields),適用于那些只和個人文章、頁面或者附件有關(guān)的數(shù)據(jù)。
參看post_meta Function Examples, add_post_meta(), 以及與文章相關(guān)函數(shù)屬性post.fuction meta (a.k.a. Custom Fields).
自定義分類法。對于文章分類或者其他對象,比如用戶、評論,或者用戶可編輯列表中的數(shù)據(jù)名稱/值,可以考慮使用自定義分類法,尤其是當(dāng)你要訪問的所有的文章/對象與給定的分類法項(xiàng)目相關(guān)聯(lián)的時候。查閱 Custom Taxonomies
在數(shù)據(jù)庫中創(chuàng)建一個新的自定義數(shù)據(jù)表。這種方法適合于與個人文章、頁面、附件或者評論相關(guān)的數(shù)據(jù),這類數(shù)據(jù)會隨著時間越來越多,它們也沒有專有名稱。參看Creating Tables with Plugins來了解更多這類信息處理方法。
以上就是關(guān)于wordpress產(chǎn)品列表插件相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
wordpress做企業(yè)官網(wǎng)(wordpress企業(yè)網(wǎng)站建設(shè))
景觀設(shè)計swot分析(景觀設(shè)計swot分析圖學(xué)生作業(yè))
wordpress進(jìn)入(wordpress進(jìn)入網(wǎng)站底部彈出信息)
原創(chuàng)文章生成器app有哪些免費(fèi)(原創(chuàng)文章生成器app有哪些免費(fèi)的)