目錄
鑰匙要點
我們需要向WordPress表示我們正在使用JavaScript文件。為此,我們將使用wp_enqueue_script()函數。
顯示另一個項目的功能
顯示新項目
首頁 CMS教程 &#&按 構建WordPress旋轉木製插件:第3部分

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

Feb 16, 2025 am 08:34 AM

構建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

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何開始WordPress博客:初學者的分步指南 如何開始WordPress博客:初學者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人們在網上表達觀點、意見和見解的理想平台。許多新手渴望建立自己的網站,卻因擔心技術障礙或成本問題而猶豫不決。然而,隨著平台不斷發展以滿足初學者的能力和需求,現在開始變得比以往任何時候都更容易。 本文將逐步指導您如何建立一個WordPress博客,從主題選擇到使用插件提升安全性和性能,助您輕鬆創建自己的網站。 選擇博客主題和方向 在購買域名或註冊主機之前,最好先確定您計劃涵蓋的主題。個人網站可以圍繞旅行、烹飪、產品評論、音樂或任何激發您興趣的愛好展開。專注於您真正感興趣的領域可以鼓勵持續寫作

wordpress文章列表怎麼調 wordpress文章列表怎麼調 Apr 20, 2025 am 10:48 AM

有四種方法可以調整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數據庫。

如何在父分類的存檔頁面上顯示子分類 如何在父分類的存檔頁面上顯示子分類 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分類存檔頁面上顯示子分類嗎?在自定義分類存檔頁面時,您可能需要執行此操作,以使其對訪問者更有用。在本文中,我們將向您展示如何在父分類存檔頁面上輕鬆顯示子分類。為什麼在父分類存檔頁面上顯示子分類?通過在父分類存檔頁面上顯示所有子分類,您可以使其不那麼通用,對訪問者更有用。例如,如果您運行一個關於書籍的WordPress博客,並且有一個名為“主題”的分類法,那麼您可以添加“小說”、“非小說”等子分類法,以便您的讀者可以

如何在 WordPress 中獲取登錄用戶信息以獲得個性化結果 如何在 WordPress 中獲取登錄用戶信息以獲得個性化結果 Apr 19, 2025 pm 11:57 PM

最近,我們向您展示瞭如何通過允許用戶將自己喜歡的帖子保存在個性化庫中來為用戶創建個性化體驗。您可以通過在某些地方(即歡迎屏幕)使用他們的名字,將個性化結果提升到另一個水平。幸運的是,WordPress使獲取登錄用戶的信息變得非常容易。在本文中,我們將向您展示如何檢索與當前登錄用戶相關的信息。我們將利用get_currentuserinfo(); 功能。這可以在主題中的任何地方使用(頁眉、頁腳、側邊欄、頁面模板等)。為了使其工作,用戶必須登錄。因此我們需要使用

對於初學者來說,WordPress容易嗎? 對於初學者來說,WordPress容易嗎? Apr 03, 2025 am 12:02 AM

WordPress對初學者來說容易上手。 1.登錄後台後,用戶界面直觀,簡潔的儀表板提供所有必要功能鏈接。 2.基本操作包括創建和編輯內容,所見即所得的編輯器簡化了內容創建。 3.初學者可以通過插件和主題擴展網站功能,學習曲線存在但可以通過實踐掌握。

如何在 WordPress 中按帖子過期日期對帖子進行排序 如何在 WordPress 中按帖子過期日期對帖子進行排序 Apr 19, 2025 pm 11:48 PM

過去,我們分享過如何使用PostExpirator插件使WordPress中的帖子過期。好吧,在創建活動列表網站時,我們發現這個插件非常有用。我們可以輕鬆刪除過期的活動列表。其次,多虧了這個插件,按帖子過期日期對帖子進行排序也非常容易。在本文中,我們將向您展示如何在WordPress中按帖子過期日期對帖子進行排序。更新了代碼以反映插件中更改自定義字段名稱的更改。感謝Tajim在評論中讓我們知道。在我們的特定項目中,我們將事件作為自定義帖子類型。現在

如何在 WordPress 中顯示查詢數量和頁面加載時間 如何在 WordPress 中顯示查詢數量和頁面加載時間 Apr 19, 2025 pm 11:51 PM

我們的一位用戶詢問其他網站如何在頁腳中顯示查詢數量和頁面加載時間。您經常會在網站的頁腳中看到這一點,它可能會顯示類似以下內容:“1.248秒內64個查詢”。在本文中,我們將向您展示如何在WordPress中顯示查詢數量和頁面加載時間。只需將以下代碼粘貼到主題文件中您喜歡的任何位置(例如footer.php)。 queriesin

如何使用 IFTTT 自動化 WordPress 和社交媒體(及更多) 如何使用 IFTTT 自動化 WordPress 和社交媒體(及更多) Apr 18, 2025 am 11:27 AM

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

See all articles