亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
簡介
格式化自定義帖子類型輸出
創(chuàng)建分類
顯示過濾器
顯示投資組合項目
連接投資組合項目和過濾器
顯示投資組合的最終代碼
書寫流沙
流沙的最終代碼
結(jié)論
首頁 CMS教程 &#&按 使用WordPress創(chuàng)建一個快速沉降式投資組合

使用WordPress創(chuàng)建一個快速沉降式投資組合

Sep 05, 2023 am 09:09 AM
沉降式:指的是以簡潔

今天,您將利用 Razorjack 的 Quicksand 魔力將您簡單的投資組合變成令人驚嘆的東西。


簡介

曾經(jīng)想使用 jQuery 插件 Quicksand 嗎?曾經(jīng)嘗試過使用 WordPress 來實現(xiàn)它嗎?但是,發(fā)現(xiàn)兩者兼而有之是一場噩夢嗎?好吧,我將通過一個簡單的分步指南,幫助您使用 Quicksand 從空白的 WordPress 主題轉(zhuǎn)變?yōu)槠恋淖远x組合。我將使用一個自定義主題,該主題已根據(jù)本教程的目的與 WordPress 3.0+ 一起進行了精簡。

所以打開您最喜歡的文本編輯器,讓我們開始吧!


第 1 步創(chuàng)建帖子類型

借助 WordPress,我們能夠創(chuàng)建自定義帖子類型,在其中管理所有內(nèi)容。我們將創(chuàng)建一個自定義帖子類型,以將我們所有的投資組合項目存儲在專用的管理部分中。

為了方便代碼管理,我們首先創(chuàng)建一個名為 portfolio 的文件夾和一個名為 portfolio-post-types.php 的 PHP 文件(或任何您認為合適的文件)。

創(chuàng)建文件后,讓我們添加一些代碼...

讓我們從創(chuàng)建一個函數(shù)開始:

<?php

	// function: post_type BEGIN
	function post_type()
	{
		// We will fill this function in the next step
	} // function: post_type END

現(xiàn)在我們已經(jīng)創(chuàng)建了空白函數(shù),讓我們添加一些代碼來使這個函數(shù)執(zhí)行一些特殊的操作。首先,為我們的自定義帖子類型創(chuàng)建標簽。在我們的 post_type 函數(shù)中插入以下代碼:

$labels = array(
	'name' => __( 'Portfolio'), 
	'singular_name' => __('Portfolio'),
	'rewrite' => array(
		'slug' => __( 'portfolio' ) 
	),
	'add_new' => _x('Add Item', 'portfolio'), 
	'edit_item' => __('Edit Portfolio Item'),
	'new_item' => __('New Portfolio Item'), 
	'view_item' => __('View Portfolio'),
	'search_items' => __('Search Portfolio'), 
	'not_found' =>  __('No Portfolio Items Found'),
	'not_found_in_trash' => __('No Portfolio Items Found In Trash'),
	'parent_item_colon' => ''
);

我們剛剛編寫的代碼的細分:

“l(fā)abels”變量是代表您的帖子類型的字符串數(shù)組,每個字符串都是特定函數(shù)輸出的文本。

  • name – 帖子類型名稱的復數(shù)形式。
  • singular_name – 帖子類型名稱的單數(shù)形式。
  • rewrite – 使用此格式重寫永久鏈接。
  • add_new – 用于添加新帖子的菜單項。
  • edit_item – 編輯帖子時顯示的標題。
  • new_item – 顯示在管理標題的收藏夾菜單中。
  • view_item – 顯示在編輯帖子屏幕上的永久鏈接旁邊。
  • search_items – 編輯帖子屏幕上搜索框的按鈕文本。
  • not_found – 通過在管理中搜索沒有找到帖子時顯示的文本。
  • not_found_in_trash – 垃圾箱中沒有帖子時顯示的文本。
  • parent_item_colon – 用作編輯帖子屏幕上父帖子的標簽。僅對分層帖子類型有用。

接下來,為我們的自定義帖子類型創(chuàng)建參數(shù)。將以下代碼插入到我們的 post_type 函數(shù)中:

$args = array(
	'labels' => $labels,
	'public' => true,
	'publicly_queryable' => true,
	'show_ui' => true,
	'query_var' => true,
	'rewrite' => true,
	'capability_type' => 'post',
	'hierarchical' => false,
	'menu_position' => null,
	'supports' => array(
		'title',
		'editor',
		'thumbnail'
	)
);
  • labels – 此帖子類型的標簽數(shù)組。
  • public – 用于定義 public_queriable、show_ui、show_in_nav_menus 和 except_from_search 的默認值的元參數(shù)。
  • publicly_queryable – 前端是否可以進行post類型查詢。
  • show_ui – 是否生成用于管理此帖子類型的默認用戶界面。
  • query_var – False 以阻止查詢,或用于此帖子類型的查詢變量的字符串值。
  • rewrite – 使用此格式重寫永久鏈接。
  • capability_type – 用于構(gòu)建讀取、編輯和刪除功能的字符串。
  • hierarchical – 帖子類型是否分層。允許指定父級。
  • menu_position – 帖子類型應出現(xiàn)在管理中的菜單順序中的位置。
  • supports – 直接調(diào)用 add_post_type_support() 的別名。

在 WordPress Codex 中了解有關 add_post_type_support 的更多信息

現(xiàn)在我們的帖子類型已經(jīng)設置完畢,我們需要注冊帖子類型。我們通過將以下代碼插入到 post_type 函數(shù)中來注冊帖子類型:

register_post_type(__( 'portfolio' ), $args);

格式化自定義帖子類型輸出

我們現(xiàn)在已經(jīng)創(chuàng)建了自定義帖子類型。讓我們格式化輸出,這樣我們就可以獲得用戶友好的消息。首先在我們的 portfolio-post-type.php 文件中創(chuàng)建另一個函數(shù)。

// function: portfolio_messages BEGIN
function portfolio_messages($messages)
{
	$messages[__( 'portfolio' )] = 
		array(
			0 => '', 
			1 => sprintf(('Portfolio Updated. <a href="%s">View portfolio</a>'), esc_url(get_permalink($post_ID))),
			2 => __('Custom Field Updated.'),
			3 => __('Custom Field Deleted.'),
			4 => __('Portfolio Updated.'),
			5 => isset($_GET['revision']) ? sprintf( __('Portfolio Restored To Revision From %s'), wp_post_revision_title((int)$_GET['revision'], false)) : false,
			6 => sprintf(__('Portfolio Published. <a href="%s">View Portfolio</a>'), esc_url(get_permalink($post_ID))),
			7 => __('Portfolio Saved.'),
			8 => sprintf(__('Portfolio Submitted. <a target="_blank" href="%s">Preview Portfolio</a>'), esc_url( add_query_arg('preview', 'true', get_permalink($post_ID)))),
			9 => sprintf(__('Portfolio Scheduled For: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview Portfolio</a>'), date_i18n( __( 'M j, Y @ G:i' ), strtotime($post->post_date)), esc_url(get_permalink($post_ID))),
			10 => sprintf(__('Portfolio Draft Updated. <a target="_blank" href="%s">Preview Portfolio</a>'), esc_url( add_query_arg('preview', 'true', get_permalink($post_ID)))),
		);
	return $messages;

} // function: portfolio_messages END

我們剛剛所做的是創(chuàng)建一個名為 portfolio_messages 的函數(shù),它接受一個名為 $messages 的參數(shù)。接下來,我們創(chuàng)建一個變量來存儲所有消息的數(shù)組。我們在數(shù)組中將“0”留空,因為我們的消息索引從 1 開始。然后最后將我們的數(shù)組返回給我們的函數(shù)。

創(chuàng)建分類

最后,我們需要創(chuàng)建我們的分類法。首先創(chuàng)建另一個名為 portfolio_filter 的函數(shù)并輸入以下代碼:

// function: portfolio_filter BEGIN
function portfolio_filter()
{
	register_taxonomy(
		__( "filter" ),
		array(__( "portfolio" )),
		array(
			"hierarchical" => true,
			"label" => __( "Filter" ),
			"singular_label" => __( "Filter" ),
			"rewrite" => array(
				'slug' => 'filter',
				'hierarchical' => true
			)
		)
	);
} // function: portfolio_filter END

我們首先注冊我們的分類法,然后將分類法應用于我們的自定義帖子類型組合。接下來,我們應用分類法的最終設置并輸入創(chuàng)建的標簽。我們創(chuàng)建分類法的原因是因為我們在使用 Quicksand 對投資組合進行排序時將使用它作為參考鍵。

現(xiàn)在我們所有的自定義帖子類型以及正確的格式和我們自己的分類法都已完成,我們需要最終初始化所有代碼,以便它將顯示在管理中。首先,我們在文件底部添加以下代碼:

add_action( 'init', 'post_type' );
add_action( 'init', 'portfolio_filter', 0 );
add_filter( 'post_updated_messages', 'portfolio_messages' );

輸入此內(nèi)容后,我們需要打開 functions.php 文件并插入以下代碼行:

include("portfolio/portfolio-post-types.php");

我們需要將自定義組合類型包含到 functions.php 文件中,以便在調(diào)用 WordPress 主題的函數(shù)時運行腳本?,F(xiàn)在,您將在管理面板中看到一個標題為投資組合的部分,其中包含 3 個子導航項,分別稱為“投資組合”、“添加項目”和“過濾器”。


第 2 步創(chuàng)建投資組合頁面

現(xiàn)在我們已經(jīng)完成了整個投資組合設置,我們需要輸出我們的投資組合項目。我們首先創(chuàng)建一個名為 portfolio.php 的新 PHP 文件。首先,讓我們添加一些創(chuàng)建頁面模板的要點:

<?php /* Template Name: Portfolio */ ?>

	<?php get_header(); ?>
	
	<!-- #content  BEGIN? -->
	<div  id="content" class="clearfix">
	
		// We will add  our content later 
		
	</div><!-- #content  END -->
	
<?php  get_footer(); ?>

現(xiàn)在,我們已經(jīng)創(chuàng)建了基本頁面模板,我們需要填充我們的投資組合。我們需要首先創(chuàng)建一個頁面作為我們的投資組合頁面,因此請前往儀表板中的頁面 -> 添加新內(nèi)容。在右側(cè),您將看到一個標題為頁面屬性的框,其中包含默認模板的下拉菜單,選擇您想要在我們的案例中使用的所需模板應選擇 >portfolio,然后選擇發(fā)布。

使用WordPress創(chuàng)建一個快速沉降式投資組合

顯示過濾器

現(xiàn)在,讓我們返回編輯我們的投資組合頁面模板并開始為我們的投資組合插入過濾器。首先,我們首先將過濾器包裝在無序列表中,每個類別都將是列表中的一個元素。

<ul class="filter clearfix">

	<li><strong>Filter:</strong></li>
	<li class="active"><a href="javascript:void(0)" class="all">All</a></li>

</ul>

讓我們向過濾器添加一些 PHP,以自動生成在我們的產(chǎn)品組合中使用的過濾器類別。

<?php
	$terms = get_terms('filter', $args);
	$count = count($terms); 
	$i=0;
	if ($count > 0) {
		foreach ($terms  as $term) {
		$i++;
		$term_list  .= '<li><a href="javascript:void(0)" class="'.  $term->slug .'">' . $term->name . '</a></li>';
		
			if ($count  != $i)
			{
				$term_list .= '';
			}
			else
			{
				$term_list .= '';
			}
		}
		echo $term_list;
	}
?>

我們在這里所做的首先是初始化我們希望獲得的分類法,在我們的例子中是過濾器。其次,為我們的類別設置一個計數(shù),以便我們在過濾器中的每個元素上遞增,然后應用條件語句來檢查我們設置的計數(shù)是否小于 0;這意味著如果過濾器中沒有類別或沒有為投資組合項目分配類別,則不會輸出任何內(nèi)容。如果我們的過濾器中有類別,那么我們想要更改每個元素的輸出。

我們通過代碼段中的以下行來完成此操作:

$term_list .= '<li><a  href="javascript:void(0)" class="'. $term->slug .'">' . $term->name . '</a></li>';

我們正在創(chuàng)建一個列表元素以適合我們的無序列表,然后將“href”設置為空白目標,因為 Quicksand 將處理內(nèi)容的組織,然后我們將類名設置為投資組合項目的 slug一致的引用,最后在我們的過濾器中輸出類別的名稱。

使用WordPress創(chuàng)建一個快速沉降式投資組合

顯示投資組合項目

太棒了,我們現(xiàn)在實現(xiàn)了動態(tài)過濾器?,F(xiàn)在我們要輸出我們的投資組合項目。讓我們開始查詢我們的數(shù)據(jù)庫,以獲取投資組合帖子類型的所有帖子并設置我們的 WordPress 循環(huán)。我們首先設置一個新的 WP_Query 對象并向其傳遞正確的參數(shù)。

<?php
	$wpbp = new WP_Query(array(
			'post_type' =>  'portfolio',
			'posts_per_page'  =>'-1'
		)
	);
?>

我們將 WP_Query 對象分配給一個變量,以便在初始化循環(huán)時可以引用我們的查詢。我們將帖子類型設置為 portfolio,因此我們只查詢之前創(chuàng)建的自定義帖子類型,最后將 posts_per_page 設置為 -1。我們使用-1,這樣每頁的帖子數(shù)量沒有固定的限制,因此顯示所有投資組合項目,如果我們愿意,我們也可以輸入任何數(shù)字,它只會顯示此處輸入的投資組合項目的數(shù)量。< /p>

現(xiàn)在我們有了一個可以引用的查詢對象,讓我們設置循環(huán)來輸出我們的投資組合項目。我們首先插入以下代碼:

<?php if ($wpbp->have_posts()) : while  ($wpbp->have_posts()) : $wpbp->the_post(); ?>

	<?php // All of our portfolio content will be inserted in  here... ?>
	
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

在開始將內(nèi)容輸入循環(huán)之前,我們將設置特色圖像。打開您的 functions.php 文件,我們將為每個投資組合項目添加一些要輸出的自定義特色圖像尺寸。

我們首先檢查當前版本的 WordPress 是否支持特色圖片功能,然后設置一些常規(guī)設置以使其正常工作。我們添加了對后縮略圖的支持,并將默認尺寸設置為 56 像素 x 56 像素。

if ( function_exists( 'add_theme_support' ) ) 
{
	add_theme_support(  'post-thumbnails' );
	set_post_thumbnail_size(  56, 56, true );
}

然后我們要添加我們自己的自定義縮略圖大小。在下面一行插入以下代碼:set_post_thumbnail_size

add_image_size( 'portfolio', 295, 150, true );

此方法允許您創(chuàng)建自己的縮略圖大小,方法是首先設置縮略圖的參考名稱,然后設置寬度和高度,最后設置縮略圖是否應硬裁剪圖像以適合指定的大小。您可以更改特色圖像的尺寸以適合您的布局;為了本教程的目的,我有一個 3 列網(wǎng)格布局。

現(xiàn)在我們已經(jīng)設置了特色圖像,我們將返回我們的投資組合頁面模板并輸出投資組合項目特色圖像。

由于每個投資組合項目的組織最好通過無序列表處理,因此我們將首先創(chuàng)建一個,然后輸出我們剛剛設置的特色圖像。在 WordPress 循環(huán)中插入以下代碼:

<ul class="filterable-grid clearfix">
	<li>
	
		<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) :  ?>
		
			<?php  the_post_thumbnail('portfolio'); ?>
			
		<?php endif;  ?>
		
		<p><a  href="<?php the_permalink(); ?>"><?php echo  get_the_title(); ?></a></p>
		
	</li>
</ul>

我們首先檢查主題是否支持縮略圖功能。如果主題支持此功能,那么它將在我們之前指定的專用縮略圖上輸出特征圖像。輸出特色圖像后,我們將作品集項目的標題直接輸出在圖像下方。

連接投資組合項目和過濾器

我們需要調(diào)整每個投資組合列表項的不同元素,以確保每個投資組合的引用對于該項目分配到的類別是正確的。為此,我們首先需要從分類中獲取類別。在循環(huán)中插入以下代碼:

<?php $terms = get_the_terms( get_the_ID(), 'filter' ); ?>

接下來,我們將向列表元素(li)添加一些屬性。我們首先將 data-id 添加到列表項中,為每個投資組合項提供唯一的標識。我們還將添加一個 data-type;這將作為我們對過濾器的引用。讓我們用以下代碼替換我們的起始列表元素 (li):

<li data-id="id-<?php echo $count; ?>"  data-type="<?php foreach ($terms as $term) { echo  strtolower(preg_replace('/\s+/', '-', $term->name)). ' '; } ?>">

我們對 data-id 應用計數(shù),當循環(huán)遍歷每個項目時,計數(shù)將會增加(我們很快就會添加計數(shù))。然后,我們循環(huán)分類法中的每個類別,并應用正則表達式來查找空格,并將其替換為“-”以匹配該類別的子句,最后在末尾添加一個空格,這樣我們就可以應用一個投資組合項目有多個類別。

最后,我們將確保增加計數(shù)并為每個投資組合項目提供唯一的參考。我們需要在結(jié)束循環(huán)之前添加以下代碼:

<?php $count++; ?>

顯示投資組合的最終代碼

<ul class="filterable-grid clearfix">

	<?php $wpbp = new WP_Query(array(  'post_type' => 'portfolio', 'posts_per_page' =>'-1' ) ); ?>

	<?php if ($wpbp->have_posts()) :  while ($wpbp->have_posts()) : $wpbp->the_post(); ?>

	<?php $terms = get_the_terms(  get_the_ID(), 'filter' ); ?>

		<li data-id="id-<?php echo  $count; ?>" data-type="<?php foreach ($terms as $term) { echo  strtolower(preg_replace('/\s+/', '-', $term->name)). ' '; } ?>">
	
			<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) :  ?>
			
				<?php  the_post_thumbnail('portfolio'); ?>
			
			<?php endif; ?>
		
			<p><a href="<?php the_permalink(); ?>"><?php echo get_the_title();  ?></a></p>
	
		</li>

	<?php $count++; ?>
	<?php endwhile; endif; ?>
	<?php wp_reset_query(); ?>

</ul>

第 3 步 jQuery 和 Quicksand

我們現(xiàn)在正在取得進展,但在繼續(xù)之前我們需要下載一些 jQuery 腳本。我們需要下載以下腳本:

  • jQuery 1.7(WordPress 3.3.1 附帶的版本)
  • Quicksand 插件(來自 GitHub 的最新版本)
  • 緩動插件(版本1.3)

我們還需要創(chuàng)建一個 JavaScript 文件來處理我們將很快編寫的所有自定義 jQuery。因此,讓我們創(chuàng)建一個名為 jquery.custom.js 的空白 JavaScript 文件?,F(xiàn)在我們已經(jīng)擁有了所有必要的腳本,讓我們打開 functions.php 并創(chuàng)建一個名為 register_js 的空白函數(shù)。一旦我們有了空白函數(shù),我們將使用 wp_register_script 和 wp_enqueue_script 方法插入腳本。首先,我們必須檢查我們是否不在管理員中,以確保腳本僅在前端加載。將以下代碼插入到我們的函數(shù)中:

// Register our scripts
function register_js()
{
	if ( !is_admin() )
	{
		wp_register_script( 'quicksand', get_template_directory_uri() . '/js/jquery.quicksand.js', 'jquery' );

		wp_register_script( 'easing', get_template_directory_uri() . '/js/jquery.easing.1.3.js', 'jquery' );

		wp_register_script( 'custom', get_template_directory_uri() . '/js/jquery.custom.js', 'jquery', '1.0', true );

		wp_enqueue_script( 'jquery' );
		wp_enqueue_script( 'quicksand' );
		wp_enqueue_script( 'easing' );
		wp_enqueue_script( 'custom' );
	}
}

首先,使用wp_register_script,我們指定一個句柄作為第一個參數(shù)以供在排隊腳本時參考,然后將腳本的源鏈接添加為我們的第二個參數(shù)(這適用于腳本的每次注冊) 。我們還指定 jquery 作為依賴項,以便在將腳本排入隊列時加載 WordPress 包含的 jQuery 版本。

注冊完所有腳本后,我們將使用 wp_enqueue_script 將它們排入隊列。我們傳遞注冊時使用的所有句柄作為引用來排隊我們的腳本。最后,我們需要通過在 functions.php 文件中添加以下代碼來初始化我們的函數(shù):

add_action('init', 'register_js');

書寫流沙

現(xiàn)在我們已經(jīng)準備好了所有腳本,我們可以開始編寫 jQuery 自定義腳本來處理流沙。讓我們打開 jquery.custom.js 腳本,并通過插入以下代碼來設置環(huán)境:

jQuery(document).ready(function() {

	// We will insert our quicksand script in here

}); // END OF DOCUMENT

現(xiàn)在我們有了腳本結(jié)構(gòu),我們將創(chuàng)建一個名為 portfolio_quicksand 的函數(shù),并且僅在 Quicksand 插件存在時才執(zhí)行。

function portfolio_quicksand() {

	// All of our quicksand handling will happen in this function

}

if(jQuery().quicksand) {

	portfolio_quicksand();

}

我將把以下內(nèi)容分解為更小的步驟,以便您了解創(chuàng)建流沙投資組合時發(fā)生的所有事情。讓我們從設置變量開始。將以下代碼插入到我們的 portfolio_quicksand 函數(shù)中:

var $filter;
var $container;
var $containerClone;
var $filterLink;
var $filteredItems;

我們將更頻繁地使用這些變量,因此這始終是為變量設置奠定堅實基礎的好方法。接下來我們將分配變量:

$filter = $('.filter li.active a').attr('class');
$filterLink = $('.filter li a');
$container = $('ul.filterable-grid');
$containerClone = $container.clone();

我們首先將過濾器設置為投資組合頁面模板中的無序列表類。其次,我們設置一個filterLink;這將充當我們在過濾器中單擊的項目。然后我們需要分配我們的投資組合項目的容器,最后我們需要容器的克隆版本,以使用 Quicksand 操作數(shù)據(jù)。

接下來,我們將編寫點擊函數(shù),因此當用戶選擇一個類別時,應該操作容器并顯示內(nèi)容的輸出。讓我們首先調(diào)用 filterLink 上的點擊函數(shù):

$filterLink.click(function(e) {

	// We will add the content for this function now...	

});

現(xiàn)在讓我們處理列表元素的活動狀態(tài)。我們首先刪除具有當前活動狀態(tài)的任何類,然后搜索過濾器并將過濾器拆分為單獨的項目,最后將活動類應用于單擊的項目(類別):

	$('.filter li').removeClass('active');
	
	$filter = $(this).attr('class').split(' ');
			
	$(this).parent().addClass('active');

這在設計過濾器樣式時會有所幫助,因為您將能夠在用戶選擇類別時提供活動狀態(tài)。

接下來,我們將處理數(shù)據(jù)過濾的條件。我們首先檢查是否已選擇全部。如果選擇了全部,則顯示容器內(nèi)的所有元素,否則顯示容器內(nèi)已被過濾器選擇的項目。

以前,當我們創(chuàng)建投資組合頁面模板時,我們?yōu)槊總€投資組合項目分配了 data-type,我們將在此處使用它作為參考鍵來查找所選數(shù)據(jù)。

	if ($filter == 'all') {
		$filteredItems = $containerClone.find('li'); 
	}
	else {
		$filteredItems = $containerClone.find('li[data-type~=' + $filter + ']'); 
	}

最后,我們調(diào)用 Quicksand 方法,并傳遞 filteredItems 和所有動畫選項:

	$container.quicksand($filteredItems, 
	{
		duration: 750,
		easing: 'easeInOutCirc',
		adjustHeight: 'dynamic' 
	});

流沙的最終代碼

function portfolio_quicksand() {
	
	// Setting up our variables
	var $filter;
	var $container;
	var $containerClone;
	var $filterLink;
	var $filteredItems
	
	// Set our filter
	$filter = $('.filter li.active a').attr('class');
	
	// Set our filter link
	$filterLink = $('.filter li a');
	
	// Set our container
	$container = $('ul.filterable-grid');
	
	// Clone our container
	$containerClone = $container.clone();
 
	// Apply our Quicksand to work on a click function
	// for each of the filter li link elements
	$filterLink.click(function(e) 
	{
		// Remove the active class
		$('.filter li').removeClass('active');
		
		// Split each of the filter elements and override our filter
		$filter = $(this).attr('class').split(' ');
		
		// Apply the 'active' class to the clicked link
		$(this).parent().addClass('active');
		
		// If 'all' is selected, display all elements
		// else output all items referenced by the data-type
		if ($filter == 'all') {
			$filteredItems = $containerClone.find('li'); 
		}
		else {
			$filteredItems = $containerClone.find('li[data-type~=' + $filter + ']'); 
		}
		
		// Finally call the Quicksand function
		$container.quicksand($filteredItems, 
		{
			// The duration for the animation
			duration: 750,
			// The easing effect when animating
			easing: 'easeInOutCirc',
			// Height adjustment set to dynamic
			adjustHeight: 'dynamic' 
		});
	});
}

第 4 步燈箱集成(額外)

令人驚奇的是,您現(xiàn)在應該擁有一個功能齊全的流沙投資組合,但我們不能僅限于此。我要添加一個額外的功能,這是完全可選的,但它可能成為我最喜歡的功能,那就是燈箱。我們將使用名為 PrettyPhoto 的 jQuery 插件來集成 Lightbox。

我們要做的第一件事是下載 PrettyPhoto 插件。

  • PrettyPhoto v3(或最新版本)

下載 PrettyPhoto 文件后,我們將首先復制 PrettyPhoto 圖像,該圖像位于 images 文件夾中,然后您需要復制標題為 PrettyPhoto 的文件夾> 進入我們的主題。我們還需要復制 CSS 和 PrettyPhoto 的 JavaScript 文件,因此讓我們將它們復制到主題中的相應文件夾中。

現(xiàn)在我們已經(jīng)準備好了所有文件,我們需要在主題中初始化它們。在我們的 functions.php 文件中,我們將創(chuàng)建另一個函數(shù)來處理我們的樣式,我們將調(diào)用該函數(shù) register_css。然后我們將注冊我們的樣式并將我們的樣式排入隊列,從而將以下代碼插入到您的 functions.php 文件中:

// Register our styles
function register_css()
{
	if (!is_admin()) {
		wp_register_style( 'prettyPhoto', get_template_directory_uri() . '/css/prettyPhoto.css' );
		wp_enqueue_style( 'prettyPhoto' );
	}
}

add_action( 'init', 'register_css' );

我們已準備好所有文件,并且它們正在由我們的主題初始化?,F(xiàn)在我們需要利用它并將 Lightbox 實現(xiàn)到我們的主題中。讓我們打開 portfolio.php(作品集頁面模板)并向我們的特色圖片添加一些代碼。

首先,我們需要獲取已設置的特色圖片的大圖。當用戶單擊圖像并加載 PrettyPhoto 時,這將充當全尺寸圖像。在 WordPress 循環(huán)中,我們需要插入以下代碼:

<?php
	$large_image =?wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), 'fullsize', false, '' );
	$large_image = $large_image[0];
?>

我們插入的代碼將在循環(huán)中查找當前帖子,并找到圖像的原始來源,然后找到圖像的全尺寸版本。返回全尺寸圖像后,我們將強制將圖像存儲在數(shù)組索引 0 中。這用于不覆蓋或與全尺寸圖像重復。

一旦我們可以訪問完整尺寸的圖像,我們現(xiàn)在將在我們的特色圖像上初始化 PrettyPhoto。以下代碼會將全尺寸圖像鏈接到投資組合項目的特色圖像,并將引用傳遞給 PrettyPhoto,將您創(chuàng)建特色圖像的代碼替換為以下內(nèi)容:

<a rel="prettyPhoto[gallery]" href="<?php  echo $large_image ?>"><?php the_post_thumbnail('portfolio');  ?></a>

太棒了,我們已經(jīng)準備好所有文件和腳本,我們已經(jīng)獲得了特色圖像的全尺寸圖像,并且我們已經(jīng)使用 PrettyPhoto 將我們的特色圖像引用到了我們的全尺寸圖像。接下來,我們需要編寫 JavaScript 以使燈箱出現(xiàn)并工作。

讓我們回到 jquery.custom.js 文件并創(chuàng)建另一個空白函數(shù)來處理 PrettyPhoto:

function lightbox() {

	// Our Lightbox functioning will be added now...

}

if(jQuery().prettyPhoto) {
	lightbox();
}

現(xiàn)在我們有了函數(shù),我們將初始化 PrettyPhoto。我們通過在 Lightbox 函數(shù)中添加以下代碼來實現(xiàn)此目的:

jQuery("a[rel^='prettyPhoto']").prettyPhoto({
	animationSpeed:'fast',
	slideshow:5000,
	theme:'pp_default',
	show_title:false,
	overlay_gallery: false,
	social_tools: false
});

您可以在以下位置閱讀 PrettyPhoto 在使用該插件時接受的所有參數(shù)的完整文檔:PrettyPhoto jQuery Lightbox Clone

所以,一切都完成了! Lightbox 實現(xiàn)到您的 WordPress 主題中,但等一下,讓我猜猜您何時單擊過濾器并使用 Quicksand;燈箱不再工作。這是因為我們需要更改 Quicksand 腳本并傳遞一小段代碼,以確保 Lightbox 即使在我們過濾投資組合時也能正常工作。

因此,讓我們通過將以下腳本添加到 jquery.custom.js 文件中的 portfolio_quicksand 函數(shù)來解決這個小問題:

$container.quicksand($filteredItems, 
	function () { lightbox(); }
);

我們在這里所做的是再次調(diào)用 Quicksand 插件,并將此調(diào)用中的函數(shù)傳遞給我們的 Lightbox 函數(shù)。因此,每次 Quicksand 過濾內(nèi)容時,都會調(diào)用 Lightbox 函數(shù),將 PrettyPhoto 應用于每個圖像。


第5步分頁集成(額外)

許多人喜歡使用 Quicksand,但有些人喜歡在其作品集中同時使用 Quicksand 和分頁。這是在您的投資組合中創(chuàng)建分頁的另一個額外功能。我將使用 WordPress 插件:WP_PageNavi

讓我們首先安裝并激活該插件。前往我們管理部分的插件->添加新頁面并搜索WP_PageNavi,找到后單擊立即安裝激活插件< /strong> 安裝后。

使用WordPress創(chuàng)建一個快速沉降式投資組合

使用WordPress創(chuàng)建一個快速沉降式投資組合

現(xiàn)在我們已經(jīng)完成了插件設置,讓我們打開我們的作品集頁面模板并對我們的文件進行一些修改。

首先,我們需要設置頁面以允許分頁。我們通過在查詢數(shù)據(jù)庫之前插入以下代碼段來實現(xiàn)此目的:

$paged = get_query_var('paged') ? get_query_var('paged') : 1;

初始化分頁后,我們需要修改數(shù)據(jù)庫查詢。我們將 post_per_page 更改為一個數(shù)字,以顯示每個頁面上顯示的最大帖子數(shù)。然后,我們將一個新參數(shù)傳遞給查詢paged,并將其引用到我們的代碼段,該代碼段允許我們對頁面進行分頁,如以下代碼所示:

$wpbp = new WP_Query(array( 'post_type' => 'portfolio', 'posts_per_page' =>'2', 'paged' => $paged ) );

太棒了,我們有一個帶分頁的作品集。我們只需要一些控件來幫助我們進行每個頁面的導航。以下代碼檢查是否安裝了 WP_PageNavi 插件,然后使用作為參數(shù)傳遞的數(shù)據(jù)庫查詢來初始化 wp_pagenavi。然后,我們重置帖子數(shù)據(jù),所有內(nèi)容都正確分頁。

<?php
	if(function_exists('wp_pagenavi'))
	{
		wp_pagenavi(array(  'query' => $wpbp ) );
		wp_reset_postdata();
	}
?>

就是這樣!您將擁有一個包含 Quicksand、Lightbox 和 Pagination 的功能齊全的產(chǎn)品組合。


結(jié)論

給自己一個鼓勵吧!您已成功使用 WordPress 創(chuàng)建了流沙作品集。所有艱苦的工作都已完成,您可以將其與您開發(fā)的任何工作一起實施。

非常感謝您花時間閱讀我的教程,希望對您有所幫助。歡迎大家留言評論,我會盡力協(xié)助和解答。

以上是使用WordPress創(chuàng)建一個快速沉降式投資組合的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

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集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
如何診斷WordPress引起的高CPU使用 如何診斷WordPress引起的高CPU使用 Jul 06, 2025 am 12:08 AM

WordPress導致服務器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)化代碼邏輯。按照上述步驟逐一排查可定位并解

如何在WordPress中縮小JavaScript文件 如何在WordPress中縮小JavaScript文件 Jul 07, 2025 am 01:11 AM

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

如何以編程方式防止評論垃圾郵件 如何以編程方式防止評論垃圾郵件 Jul 08, 2025 am 12:04 AM

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

如何爭取古騰堡大塊的資產(chǎn) 如何爭取古騰堡大塊的資產(chǎn) Jul 09, 2025 am 12:14 AM

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

如何向用戶添加自定義字段 如何向用戶添加自定義字段 Jul 06, 2025 am 12:18 AM

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

如何添加自定義重寫規(guī)則 如何添加自定義重寫規(guī)則 Jul 08, 2025 am 12:11 AM

在WordPress中添加自定義重寫規(guī)則的關鍵在于使用add_rewrite_rule函數(shù)并確保規(guī)則正確生效。1.使用add_rewrite_rule注冊規(guī)則,格式為add_rewrite_rule($regex,$redirect,$after),其中$regex是正則表達式匹配URL,$redirect指定實際查詢,$after控制規(guī)則位置;2.需通過add_filter添加自定義查詢變量;3.修改后必須刷新固定鏈接設置;4.建議將規(guī)則放在'top'以避免沖突;5.可借助插件查看當前規(guī)則便于

如何優(yōu)化WordPress機器人TXT 如何優(yōu)化WordPress機器人TXT Jul 13, 2025 am 12:37 AM

robots.txt對WordPress網(wǎng)站的SEO至關重要,能引導搜索引擎抓取行為,避免重復內(nèi)容并提升效率。1.屏蔽如/wp-admin/、/wp-includes/等系統(tǒng)路徑,但避免誤封/uploads/目錄;2.添加Sitemap路徑如Sitemap:https://yourdomain.com/sitemap.xml以幫助搜索引擎快速發(fā)現(xiàn)站點地圖;3.限制/page/和帶參數(shù)的URL以減少爬蟲浪費,但需注意勿封重要歸檔頁;4.避免常見錯誤如誤封全站、緩存插件影響更新及忽略移動端與子域名配

如何介紹WordPress性能 如何介紹WordPress性能 Jul 07, 2025 am 12:43 AM

1.使用性能分析插件可快速定位問題,如QueryMonitor可查看數(shù)據(jù)庫查詢次數(shù)與PHP錯誤,BlackboxProfiler生成函數(shù)執(zhí)行報告,NewRelic提供服務器級分析;2.分析PHP執(zhí)行性能需檢查耗時函數(shù)、調(diào)試工具使用及內(nèi)存分配情況,如Xdebug生成火焰圖輔助優(yōu)化;3.監(jiān)控數(shù)據(jù)庫查詢效率可通過慢查詢?nèi)罩九c索引檢查,QueryMonitor能列出所有SQL并按時間排序;4.結(jié)合GooglePageSpeedInsights、GTmetrix與WebPageTest等外部工具評估前端加

See all articles