鑰匙要點
- >使輪播箭頭起作用,使用wp_enqueue_script()函數(shù)創(chuàng)建JavaScript文件并鏈接到WordPress,該函數(shù)放置在display_carousel()函數(shù)條件中,以確保僅在顯示旋轉(zhuǎn)器時包含它。 > >旋轉(zhuǎn)木馬的UL塊水平移動以通過調(diào)整其左側(cè)CSS屬性來顯示不同的項目;負左側(cè)邊緣將下一個項目的左側(cè)與旋轉(zhuǎn)木塊的左側(cè)對齊。
- >創(chuàng)建一個函數(shù),carousel_show_another_link(),以根據(jù)方向參數(shù)顯示另一個項目(上一個項目的-1,下一個項目為1);它計算出新項目的索引以顯示并在移動UL塊之前檢查它是否存在。
- 。 >在相應(yīng)的箭頭事件上創(chuàng)建并附加了兩個函數(shù),Carousel_previous_link()和carousel_next_link(),并使用適當?shù)膮?shù)調(diào)用carousel_show_another_link()函數(shù);在文檔準備就緒時,通過將UL塊的邊距左側(cè)屬性初始化為0來阻止錯誤。
- >
>我們將箭頭添加到我們的旋轉(zhuǎn)木馬中,以允許用戶在不同的項目之間導航,現(xiàn)在是時候讓它們有用的JavaScript。
>在本教程的延續(xù)中,我們將學習如何正確包含我們的腳本,然后我們編寫一個腳本,該腳本將啟動一個函數(shù),該函數(shù)在用戶擊中箭頭時會為項目動畫。>鏈接JavaScript文件
>在這里,我們將使用JavaScript使我們的箭頭有用。至于CSS部分,創(chuàng)建一個新文件。我稱其為carousel.js,并將其放在插件文件夾的根部。
>我們需要向WordPress表示我們正在使用JavaScript文件。為此,我們將使用wp_enqueue_script()函數(shù)。
>前兩個參數(shù)與WP_ENQUEUE_STYLE()相同。然后我們找到一個數(shù)組。此數(shù)組列出了依賴項,我們的腳本需要工作的腳本。我選擇使用jQuery來解決瀏覽器兼容性問題,因此我向WordPress表示我想使用它:正如我們在文章中看到的有關(guān)WordPress中的腳本('jquery'的腳本)中所見,“ jQuery”是WordPress的公認價值。
。
第四參數(shù)是腳本的版本編號。這里不是很重要(有關(guān)更多信息,請參見之前鏈接的文章),但是我們需要使用最后一個參數(shù)并將其設(shè)置為true,以便我們的腳本將包含在頁腳中。<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>>
選擇頁腳而不是標題的優(yōu)點是,我們可以在任何地方使用WP_ENQUEUE_SCRIPT()。與WP_ENQUEUE_STYLE()一樣,我們沒有在WP_head()之前使用它的約束。然后,我們只有在必要時才能夠包含我們的腳本:僅當我們顯示旋轉(zhuǎn)木馬時。
>放置wp_enqueue_script()的最佳場所,因此在我們的display_carousel()函數(shù)的條件下。我們只有在有項目顯示時才顯示旋轉(zhuǎn)木馬,因此我們將包含具有相同條件的腳本。>
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>現(xiàn)在我們準備好編輯我們的JavaScript文件。
>
我們想做什么?>
首先,我們將所有代碼封裝在函數(shù)中。為了防止與其他庫發(fā)生沖突,WordPress禁用在jQuery中使用$。我們可以通過此功能再次啟用它。
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>即使沒有修改我們的HTML代碼,也有許多不同的方法來制作輪播。在這里,我建議您移動UL塊。它連續(xù)包含我們的所有項目,因此我們可以通過設(shè)置其位置來水平移動以顯示一個或另一個項目。請參閱下面已經(jīng)在本教程的上一部分中看到的架構(gòu),以查看我們想做什么。
>

> 為了顯示第二個項目,我們必須將UL塊移到左側(cè),以便將第二個項目的左側(cè)與旋轉(zhuǎn)木馬塊的左側(cè)對齊。這可以通過負左側(cè)邊緣來實現(xiàn)。為了測試我們需要使用的值,我們可以嘗試一些CSS代碼(我們不需要它,我們就立即刪除了它)。
>這條簡單的線應(yīng)該得到解釋。如果測試它,則應(yīng)該看到未顯示第一項,而是看到第二個項目。您可以測試另一個值,以更好地了解發(fā)生了什么。使用-50px,我們將UL塊50像素移向左側(cè)。我在上面的CSS中向您展示的值,因為輪播的寬度為900像素,我可以顯示第二個項目,值為-900px。
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>但是,我們可以使用百分比。優(yōu)點是該百分比相對于容器。在這里,“ 100%”等于“ 900像素”,因此,如果我們給出-100%的值,我們隱藏了第一個項目并顯示第二個項目。使用百分比使您可以修改容器的寬度,而無需修改邊距 - 左屬性的值。
>
顯示另一個項目的功能
首先,我們將編寫將顯示另一個項目的功能。這個將接受一個參數(shù),方向。如果我們要顯示上一項,則必須將此方向設(shè)置為-1,并且,如果要顯示下一個項目,則必須將其設(shè)置為1。
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>我們要去哪里?
>
要確定要分配給邊緣左側(cè)的值,我們需要知道我們的位置。有多種可能的方法可以實現(xiàn)這一目標,我選擇了一種僅使用邊距左屬性的當前值的方法。>
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>第一行檢索UL塊。正如我們稍后將重復使用的那樣,將其存儲在變量中是一個好主意。第二行似乎有些怪異。目的是存儲代表當前顯示的項目的整數(shù)。第一個項目將以0為代表,第二項by 1等。
> 為了實現(xiàn)這一目標,我們獲得了邊距左側(cè)屬性的當前值。問題在于,此值大約是-200%,我們希望一個數(shù)字:要刪除“%”,我們使用ParseInt()函數(shù)將值轉(zhuǎn)換為整數(shù)(例如'-200%'變?yōu)?200)。由于我們想要一個積極的整數(shù),我們添加了一個“減”標志(例如,從-200獲得200個),然后除以100,以獲取所需的價值(例如2,而不是200)。
>您可能會想知道為什么我們不使用UL.CSS('Margin-Left')獲取邊距左側(cè)屬性的價值。實際上,.css()是一種jQuery方法,在我們的背景下,似乎是一個更好的主意。問題是這種方法不會給我們一個百分比。使用與上述相同的值,如果當前項目是第三個項目,則保證金左派屬性設(shè)置為-200%,而.css()方法將返回-1800px。要使用像素中的此值來計算當前項目,然后我們需要使用大容器的寬度,我更喜歡僅使用UL塊。。
>現(xiàn)在我們可以計算出要顯示的項目的索引,這要歸功于我們功能的參數(shù)中給出的方向。
新項目是否存在?
在顯示新項目之前,我們需要測試它是否存在。如果new_link小于或等于-1,或者大于或等于項目總數(shù),則它不存在,我們無法顯示,因此移動UL塊不是一個好主意。請注意,此測試似乎是多余的,因為當我們無法進一步走時不會顯示箭頭,但是確保實際上可以完成某件事總是一個好主意。<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>>
首先,我們獲得項目總數(shù),這是我們列表中LI標簽的數(shù)量。這個數(shù)字對于我們上面描述的條件很有用,因為我們想要一個不得大于或等于項目數(shù)量的正整數(shù)(不要忘記我們以0而不是1開始)。
顯示新項目
最后,可以通過一條線實現(xiàn)塊移動。我們必須計算邊緣左側(cè)的新值。為此,讓我們考慮一下。對于每個“通過”項目,我們的寬度為100%旅行。這樣,保證金的新價值是我們剛剛計算的新項目位置的100倍,而左符號則是左側(cè)的符號。>
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>>我選擇在這里使用jQuery動畫,但是您可以自由創(chuàng)建自己的動畫,甚至修改了此設(shè)置。
>
一些更實際用途的別名>現(xiàn)在,我們將每次單擊箭頭上單擊箭頭時都會創(chuàng)建功能。這些功能不需要大量的代碼,因為他們唯一要做的就是將Carousel_show_another_link()函數(shù)使用正確的參數(shù)調(diào)用。以下是當我們單擊“上一個”箭頭時稱為函數(shù)的代碼。
>
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>請注意返回false;為了防止我們的箭頭的默認行為(別忘了它們是鏈接)。這樣,用戶單擊箭頭時,URL不會更改。
>
顯示“下一個”項目的函數(shù)完全相同,但1作為carousel_show_another_link()的參數(shù)為1。我選擇稱其為carousel_next_link()。附加事件
>最后,我們必須通過將正確的事件附加到正確的元素來使這些功能有用。我們將在一個新功能中執(zhí)行此操作,當我們確定創(chuàng)建元素時調(diào)用:加載文檔時。
我們要將carousel_previous_link()函數(shù)附加到每個“以前”箭頭。使用旋轉(zhuǎn)木馬的DOM樹,我們可以輕松地檢索它們,就像我們想在CSS中造型時檢索它們一樣。
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
然后,我們可以以相同的方式將carousel_next_link()函數(shù)連接到右箭頭(#carousel ul a.carousel-next)。
><span><span>#carousel ul</span> { </span> <span>margin-left: -100%; </span><span>}</span>>您可以測試此代碼,但應(yīng)該出現(xiàn)一個錯誤:carousel_show_another_link()函數(shù)首次調(diào)用我們的UL塊的CSS屬性邊距 - 左側(cè)不存在,因此當我們嘗試檢索時會發(fā)生錯誤它的值。
為了防止此錯誤,我們可以初始化此屬性的值。仍在文檔準備就緒時調(diào)用的函數(shù)(例如,在附加事件之前),添加以下行。
>將UL塊的邊距左屬性設(shè)置為0,為默認值?,F(xiàn)在將存在此屬性,而無需移動塊。
>>您現(xiàn)在可以單擊箭頭,旋轉(zhuǎn)旋轉(zhuǎn)木馬已完成!
總結(jié)<span>function carousel_show_another_link(direction) { </span><span>}</span>在本教程中,我們使用WordPress Links Manager API瀏覽了Carousel插件。這是使用此API的一個很好的例子,但這也是查看如何將PHP,HTML,CSS和JavaScript組合到WordPress插件中的好方法。
>
在結(jié)束時,我會說,即使我們保留了生成的HTML代碼,也可以選擇許多不同的方法來構(gòu)建轉(zhuǎn)型旋轉(zhuǎn)木馬:我們可以選擇不同的樣式或編寫腳本的不同方法。實際上,我們在這里寫的腳本只是一個示例,我們可以編寫一個完全不同的結(jié)果。
>您可以自己決定是否喜歡我們在此處使用的代碼。如果沒有,請不要猶豫編輯!>
即使您喜歡我們在這里所做的事情,您仍然可以增強結(jié)果。例如,訪問者必須擊中箭頭才能查看其他項目:您可以嘗試使用function settimeout()。如果您想查看完成的代碼,或者自己嘗試插件,則可以在此處下載。
以上是構(gòu)建WordPress旋轉(zhuǎn)木制插件:第3部分的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

WordPress導致服務(wù)器CPU使用率飆升的主要原因包括插件問題、數(shù)據(jù)庫查詢效率低、主題代碼質(zhì)量差或流量激增。1.首先通過top、htop或控制面板工具確認是否為WordPress引起的高負載;2.進入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況并刪除或替換低效插件;3.安裝緩存插件、清理冗余數(shù)據(jù)、分析慢查詢?nèi)罩疽詢?yōu)化數(shù)據(jù)庫;4.檢查主題是否存在過度加載內(nèi)容、復雜查詢或缺乏緩存機制等問題,建議用標準主題測試對比并優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位并解

MinifyingJavaScript文件可通過刪除空白、注釋和無用代碼來提升WordPress網(wǎng)站加載速度。1.使用支持合并壓縮的緩存插件如W3TotalCache,在“Minify”選項中啟用并選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細控制;3.手動壓縮JS文件并通過FTP上傳,適用于熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能沖突,啟用后需徹底測試網(wǎng)站功能。

優(yōu)化WordPress站點不依賴插件的方法包括:1.使用輕量級主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動壓縮和合并CSS、JS文件,減少HTTP請求;3.上傳前優(yōu)化圖片,使用WebP格式并控制文件大??;4.配置.htaccess啟用瀏覽器緩存,并接入CDN提升靜態(tài)資源加載速度;5.限制文章修訂版本并定期清理數(shù)據(jù)庫冗余數(shù)據(jù)。

TransientsAPI是WordPress中用于臨時存儲可自動過期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時間(TTL),適合緩存API請求結(jié)果、復雜計算數(shù)據(jù)等場景。使用時需注意key命名唯一性與命名空間、緩存“懶刪除”機制及對象緩存環(huán)境下可能不持久的問題。典型應(yīng)用場景包括減少外部請求頻率、控制代碼執(zhí)行節(jié)奏和提升頁面加載性能。

防止評論垃圾信息最有效的方式是通過程序化手段自動識別并攔截。1.使用驗證碼機制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機器人,尤其適合公眾網(wǎng)站;2.設(shè)置隱藏字段(Honeypot技術(shù)),利用機器人自動填寫特性識別垃圾評論,不影響用戶體驗;3.檢查評論內(nèi)容關(guān)鍵詞黑名單,通過敏感詞匹配過濾垃圾信息,需注意避免誤判;4.判斷評論頻率與來源IP,限制單位時間內(nèi)的提交次數(shù)并建立黑名單;5.使用第三方反垃圾服務(wù)(如Akismet、Cloudflare)提升識別準確性??筛鶕?jù)網(wǎng)站

PluginCheck是一個幫助WordPress用戶快速檢查插件兼容性和性能的工具,主要用來識別當前安裝的插件是否存在與最新版本W(wǎng)ordPress不兼容、存在安全漏洞等問題。1.如何開始檢查?安裝激活后,在后臺點擊“RunaScan”按鈕即可自動掃描所有插件;2.報告包含插件名稱、檢測類型、問題描述及解決方案建議,便于優(yōu)先處理嚴重問題;3.建議在更新WordPress前、網(wǎng)站異常時或定期運行檢查,提前發(fā)現(xiàn)隱患,避免未來出現(xiàn)重大問題。

在開發(fā)Gutenberg塊時,正確enqueue資產(chǎn)的方法包括:1.使用register_block_type指定editor_script、editor_style和style的路徑;2.在functions.php或插件中通過wp_register_script和wp_register_style注冊資源,并設(shè)置正確的依賴和版本;3.配置構(gòu)建工具輸出合適的模塊格式,并確保路徑一致;4.通過add_theme_support或enqueue_block_assets控制前端樣式的加載邏輯,確保

要添加自定義用戶字段需根據(jù)平臺選擇擴展方式并注意數(shù)據(jù)驗證與權(quán)限控制。常見做法包括:1.利用數(shù)據(jù)庫額外表或鍵值對結(jié)構(gòu)存儲信息;2.在前端加入輸入框并與后端集成;3.對敏感數(shù)據(jù)進行格式校驗和訪問權(quán)限限制;4.更新接口及模板以支持新字段展示與編輯,同時兼顧移動端適配和用戶體驗。
