搜尋
首頁CMS教程&#&按構建WordPress旋轉木製插件:第3部分

構建WordPress旋轉木製插件:第3部分

鑰匙要點

  • >使輪播箭頭起作用,使用wp_enqueue_script()函數創建JavaScript文件並鏈接到WordPress,該函數放置在display_carousel()函數條件中,以確保僅在顯示旋轉器時包含它。 >
  • >旋轉木馬的UL塊水平移動以通過調整其左側CSS屬性來顯示不同的項目;負左側邊緣將下一個項目的左側與旋轉木塊的左側對齊。
  • >創建一個函數,carousel_show_another_link(),以根據方向參數顯示另一個項目(上一個項目的-1,下一個項目為1);它計算出新項目的索引以顯示並在移動UL塊之前檢查它是否存在。
  • >在相應的箭頭事件上創建並附加了兩個函數,Carousel_previous_link()和carousel_next_link(),並使用適當的參數調用carousel_show_another_link()函數;在文檔準備就緒時,通過將UL塊的邊距左側屬性初始化為0來阻止錯誤。
  • >
>沒有樣式,我們在本教程的第一部分中構建的WordPress旋轉木馬只是項目列表,但從某種意義上來說,它至少是有用的。我們在本教程的第二部分中添加的CSS增強了輪播的顯示,但是現在問題是只有第一項向用戶顯示,並且無法顯示其餘項目。

>我們將箭頭添加到我們的旋轉木馬中,以允許用戶在不同的項目之間導航,現在是時候讓它們有用的JavaScript。

>在本教程的延續中,我們將學習如何正確包含我們的腳本,然後我們編寫一個腳本,該腳本將啟動一個函數,該函數在用戶擊中箭頭時會為項目動畫。

>鏈接JavaScript文件

>在這裡,我們將使用JavaScript使我們的箭頭有用。至於CSS部分,創建一個新文件。我稱其為carousel.js,並將其放在插件文件夾的根部。

>

我們需要向WordPress表示我們正在使用JavaScript文件。為此,我們將使用wp_enqueue_script()函數。

>

前兩個參數與WP_ENQUEUE_STYLE()相同。然後我們找到一個數組。此數組列出了依賴項,我們的腳本需要工作的腳本。我選擇使用jQuery來解決瀏覽器兼容性問題,因此我向WordPress表示我想使用它:正如我們在文章中看到的有關WordPress中的腳本('jquery'的腳本)中所見,“ jQuery”是WordPress的公認價值。

第四參數是腳本的版本編號。這裡不是很重要(有關更多信息,請參見之前鏈接的文章),但是我們需要使用最後一個參數並將其設置為true,以便我們的腳本將包含在頁腳中。
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
>

選擇頁腳而不是標題的優點是,我們可以在任何地方使用WP_ENQUEUE_SCRIPT()。與WP_ENQUEUE_STYLE()一樣,我們沒有在WP_head()之前使用它的約束。然後,我們只有在必要時才能夠包含我們的腳本:僅當我們顯示旋轉木馬時。

>放置wp_enqueue_script()的最佳場所,因此在我們的display_carousel()函數的條件下。我們只有在有項目顯示時才顯示旋轉木馬,因此我們將包含具有相同條件的腳本。

>

<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
現在我們準備好編輯我們的JavaScript文件。

>

我們想做什麼?

>

首先,我們將所有代碼封裝在函數中。為了防止與其他庫發生衝突,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塊。它連續包含我們的所有項目,因此我們可以通過設置其位置來水平移動以顯示一個或另一個項目。請參閱下面已經在本教程的上一部分中看到的架構,以查看我們想做什麼。

>

構建WordPress旋轉木製插件:第3部分要移動它,我們將使用其左側CSS屬性進行播放。默認情況下,它設置為0,因此“顯示”第一個項目。第一個項目足夠大,可以填充旋轉頻率塊和第二個項目,而第二個項目旁邊的第二項則無法看到溢出屬性。

> 為了顯示第二個項目,我們必須將UL塊移到左側,以便將第二個項目的左側與旋轉木馬塊的左側對齊。這可以通過負左側邊緣來實現。為了測試我們需要使用的值,我們可以嘗試一些CSS代碼(我們不需要它,我們就立即刪除了它)。

>

這條簡單的線應該得到解釋。如果測試它,則應該看到未顯示第一項,而是看到第二個項目。您可以測試另一個值,以更好地了解發生了什麼。使用-50px,我們將UL塊50像素移向左側。我在上面的CSS中向您展示的值,因為輪播的寬度為900像素,我可以顯示第二個項目,值為-900px。
<span>jQuery(function($) {
</span>	<span>// The code we will write must be placed here
</span><span>});</span>
但是,我們可以使用百分比。優點是該百分比相對於容器。在這裡,“ 100%”等於“ 900像素”,因此,如果我們給出-100%的值,我們隱藏了第一個項目並顯示第二個項目。使用百分比使您可以修改容器的寬度,而無需修改邊距 - 左屬性的值。

>

顯示另一個項目的功能

首先,我們將編寫將顯示另一個項目的功能。這個將接受一個參數,方向。如果我們要顯示上一項,則必須將此方向設置為-1,並且,如果要顯示下一個項目,則必須將其設置為1。 >。

<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
我們要去哪裡?

>

要確定要分配給邊緣左側的值,我們需要知道我們的位置。有多種可能的方法可以實現這一目標,我選擇了一種僅使用邊距左屬性的當前值的方法。

>

<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塊。正如我們稍後將重複使用的那樣,將其存儲在變量中是一個好主意。第二行似乎有些怪異。目的是存儲代表當前顯示的項目的整數。第一個項目將以0為代表,第二項by 1等。

> 為了實現這一目標,我們獲得了邊距左側屬性的當前值。問題在於,此值大約是-200%,我們希望一個數字:要刪除“%”,我們使用ParseInt()函數將值轉換為整數(例如'-200%'變為-200)。由於我們想要一個積極的整數,我們添加了一個“減”標誌(例如,從-200獲得200個),然後除以100,以獲取所需的價值(例如2,而不是200)。

>您可能會想知道為什麼我們不使用UL.CSS('Margin-Left')獲取邊距左側屬性的價值。實際上,.css()是一種jQuery方法,在我們的背景下,似乎是一個更好的主意。問題是這種方法不會給我們一個百分比。使用與上述相同的值,如果當前項目是第三個項目,則保證金左派屬性設置為-200%,而.css()方法將返回-1800px。要使用像素中的此值來計算當前項目,然後我們需要使用大容器的寬度,我更喜歡僅使用UL塊。

>現在我們可以計算出要顯示的項目的索引,這要歸功於我們功能的參數中給出的方向。

新項目是否存在?

在顯示新項目之前,我們需要測試它是否存在。如果new_link小於或等於-1,或者大於或等於項目總數,則它不存在,我們無法顯示,因此移動UL塊不是一個好主意。請注意,此測試似乎是多餘的,因為當我們無法進一步走時不會顯示箭頭,但是確保實際上可以完成某件事總是一個好主意。
<span>jQuery(function($) {
</span>	<span>// The code we will write must be placed here
</span><span>});</span>
>

首先,我們獲得項目總數,這是我們列表中LI標籤的數量。這個數字對於我們上面描述的條件很有用,因為我們想要一個不得大於或等於項目數量的正整數(不要忘記我們以0而不是1開始)。

顯示新項目

最後,可以通過一條線實現塊移動。我們必須計算邊緣左側的新值。為此,讓我們考慮一下。對於每個“通過”項目,我們的寬度為100%旅行。這樣,保證金的新價值是我們剛剛計算的新項目位置的100倍,而左符號則是左側的符號。

>

<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
>我選擇在這裡使用jQuery動畫,但是您可以自由創建自己的動畫,甚至修改了此設置。

>

一些更實際用途的別名

>現在,我們將每次單擊箭頭上單擊箭頭時都會創建功能。這些功能不需要大量的代碼,因為他們唯一要做的就是將Carousel_show_another_link()函數使用正確的參數調用。以下是當我們單擊“上一個”箭頭時稱為函數的代碼。

>

<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不會更改。

>

顯示“下一個”項目的函數完全相同,但1作為carousel_show_another_link()的參數為1。我選擇稱其為carousel_next_link()。

附加事件

>最後,我們必須通過將正確的事件附加到正確的元素來使這些功能有用。我們將在一個新功能中執行此操作,當我們確定創建元素時調用:加載文檔時。

我們要將carousel_previous_link()函數附加到每個“以前”箭頭。使用旋轉木馬的DOM樹,我們可以輕鬆地檢索它們,就像我們想在CSS中造型時檢索它們一樣。
<span>jQuery(function($) {
</span>	<span>// The code we will write must be placed here
</span><span>});</span>

然後,我們可以以相同的方式將carousel_next_link()函數連接到右箭頭(#carousel ul a.carousel-next)。

>
<span><span>#carousel ul</span> {
</span>	<span>margin-left: -100%;
</span><span>}</span>
>您可以測試此代碼,但應該出現一個錯誤:carousel_show_another_link()函數首次調用我們的UL塊的CSS屬性邊距 - 左側不存在,因此當我們嘗試檢索時會發生錯誤它的值。

為了防止此錯誤,我們可以初始化此屬性的值。仍在文檔準備就緒時調用的函數(例如,在附加事件之前),添加以下行。

>將UL塊的邊距左屬性設置為0,為默認值。現在將存在此屬性,而無需移動塊。

>

>您現在可以單擊箭頭,旋轉旋轉木馬已完成!

總結
<span>function carousel_show_another_link(direction) {
</span><span>}</span>
在本教程中,我們使用WordPress Links Manager API瀏覽了Carousel插件。這是使用此API的一個很好的例子,但這也是查看如何將PHP,HTML,CSS和JavaScript組合到WordPress插件中的好方法。

>

在結束時,我會說,即使我們保留了生成的HTML代碼,也可以選擇許多不同的方法來構建轉型旋轉木馬:我們可以選擇不同的樣式或編寫腳本的不同方法。實際上,我們在這裡寫的腳本只是一個示例,我們可以編寫一個完全不同的結果。

>您可以自己決定是否喜歡我們在此處使用的代碼。如果沒有,請不要猶豫編輯!

>

即使您喜歡我們在這裡所做的事情,您仍然可以增強結果。例如,訪問者必須擊中箭頭才能查看其他項目:您可以嘗試使用function settimeout()。

如果您想查看完成的代碼,或者自己嘗試插件,則可以在此處下載。

以上是構建WordPress旋轉木製插件:第3部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
WordPress的插件生態系統如何增強其CMS功能?WordPress的插件生態系統如何增強其CMS功能?May 14, 2025 am 12:20 AM

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超過50,000pluginsallowuserstailostailortheortheortheortheirsiteforseo,電子商務和蘇聯。 2)pluginScaneCanextendCoreFeatures,likeaddingcustompostposttypes.3bully.3 burl

WordPress適合電子商務嗎?WordPress適合電子商務嗎?May 13, 2025 am 12:05 AM

是的,WordPress非常适合做电商。1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显著。

如何在 Yandex 網站管理員工具中添加您的 WordPress 網站如何在 Yandex 網站管理員工具中添加您的 WordPress 網站May 12, 2025 pm 09:06 PM

您想將您的網站連接到Yandex網站管理員工具嗎? Google搜索控制台、Bing和Yandex等網站管理員工具可幫助您優化網站、監控流量、管理robots.txt、檢查網站錯誤等。在本文中,我們將分享如何在Yandex網站管理員工具中添加您的WordPress網站來監控您的搜索引擎流量。什麼是Yandex? Yandex是一個位於俄羅斯的流行搜索引擎,類似於Google和Bing。您可以在Yandex中優

如何修復 WordPress 中的 HTTP 圖片上傳錯誤(簡單)如何修復 WordPress 中的 HTTP 圖片上傳錯誤(簡單)May 12, 2025 pm 09:03 PM

您需要修復WordPress中的HTTP圖片上傳錯誤嗎?當您在WordPress中創建內容時,此錯誤可能會特別令人沮喪。當您使用內置WordPress媒體庫將圖像或其他文件上傳到CMS時,通常會發生這種情況。在本文中,我們將向您展示如何輕鬆修復WordPress中的HTTP圖片上傳錯誤。 WordPress媒體上傳過程中出現HTTP錯誤的原因是什麼?當您嘗試使用WordPress媒體上傳器將文件上傳到Wo

如何修復添加媒體按鈕在 WordPress 中不起作用的問題如何修復添加媒體按鈕在 WordPress 中不起作用的問題May 12, 2025 pm 09:00 PM

最近,我們的一位讀者報告說,他們的WordPress網站上的“添加媒體”按鈕突然停止工作。此經典編輯器問題不會顯示任何錯誤或警告,這使用戶不知道為什麼他們的“添加媒體”按鈕不起作用。在本文中,我們將向您展示如何輕鬆修復WordPress中的“添加媒體”按鈕不起作用的問題。是什麼導致WordPress“添加媒體”按鈕停止工作?如果您仍在使用舊的經典WordPress編輯器,那麼“添加媒體”按鈕允許您將圖像、視頻等插入博客文章中。

如何設置、獲取和刪除 WordPress Cookie(像專業人士一樣)如何設置、獲取和刪除 WordPress Cookie(像專業人士一樣)May 12, 2025 pm 08:57 PM

您想了解如何在WordPress網站上使用cookie嗎? Cookie是在用戶瀏覽器中存儲臨時信息的有用工具。您可以使用此信息通過個性化和行為定位來增強用戶體驗。在本終極指南中,我們將向您展示如何像專業人士一樣設置、獲取和刪除WordPresscookie。注意:這是一個高級教程。它要求您精通HTML、CSS、WordPress網站和PHP。什麼是Cookie? Cookie是用戶訪問網站時創建並存儲在用戶瀏覽

如何修復 WordPress 429 請求過多錯誤如何修復 WordPress 429 請求過多錯誤May 12, 2025 pm 08:54 PM

您是否在WordPress網站上看到“429請求過多”錯誤?此錯誤消息意味著用戶向您網站的服務器發送了太多HTTP請求。此錯誤可能會非常令人沮喪,因為很難找出導致該錯誤的原因。在本文中,我們將向您展示如何輕鬆修復“WordPress429TooManyRequests”錯誤。是什麼原因導致WordPress429請求過多錯誤? “429TooManyRequests”錯誤的最常見原因是用戶、機器人或腳本嘗試向網站

WordPress作為大型網站的CMS有多可擴展?WordPress作為大型網站的CMS有多可擴展?May 12, 2025 am 12:08 AM

WordPressCanHandLeLArgeWebsiteswithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)優化YourDataBaseRegularly.3)actimentAcdNtododistibuteContent.4))

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中