1. WordPress'te Varsayılan Arama ve Filtreleme
WordPress, varsayılan olarak basit bir arama sistemi sunar. Bu sistem, yazıların başlık ve içeriklerinde anahtar kelime araması yapar. Ancak, bu sistem genellikle sınırlıdır ve özel ihtiyaçlarınızı karşılamayabilir.
a) Varsayılan Arama Sistemi
Özel arama sistemleri, daha gelişmiş arama özellikleri sunar. Örneğin, belirli alanlarda arama yapma, çoklu kriterlere göre filtreleme veya özel post türlerinde arama gibi işlevler ekleyebilirsiniz.
a) Özel Arama Formu Oluşturma
Aşağıda, özel bir arama formu örneği bulunmaktadır:
Bu form, yalnızca "product" özel post türünde arama yapar.
b) Özel Arama Sorguları
WordPress,
3. Özel Filtreleme Sistemi Oluşturma
Özel filtreleme sistemleri, kullanıcıların içerikleri belirli kriterlere göre filtrelemesini sağlar. Örneğin, fiyat aralığına, renge veya diğer özel alanlara göre filtreleme yapabilirsiniz.
a) Özel Filtreleme Formu
Aşağıda, özel bir filtreleme formu örneği bulunmaktadır:
b) Özel Filtreleme Sorguları
Formdan gelen verilere göre özel bir sorgu oluşturabilirsiniz:
4. AJAX ile Dinamik Arama ve Filtreleme
AJAX, kullanıcıların sayfayı yenilemeden arama ve filtreleme işlemleri yapmasını sağlar. Bu, kullanıcı deneyimini önemli ölçüde artırır.
a) AJAX ile Dinamik Arama
1. JavaScript Kodları:
2. PHP Kodları:
5. Popüler Arama ve Filtreleme Eklentileri
WordPress'te özel arama ve filtreleme sistemleri oluşturmak, sitenizin işlevselliğini ve kullanıcı deneyimini artırmak için harika bir yoldur. Bu makalede bahsedilen adımları takip ederek, kendi özel arama ve filtreleme sistemlerinizi oluşturabilir ve WordPress sitenizi daha da özelleştirebilirsiniz.
WordPress, varsayılan olarak basit bir arama sistemi sunar. Bu sistem, yazıların başlık ve içeriklerinde anahtar kelime araması yapar. Ancak, bu sistem genellikle sınırlıdır ve özel ihtiyaçlarınızı karşılamayabilir.
a) Varsayılan Arama Sistemi
- Arama Formu:
get_search_form()
fonksiyonu ile varsayılan arama formunu görüntüleyebilirsiniz. - Arama Sonuçları:
search.php
şablon dosyası, arama sonuçlarını görüntüler.
- Kategoriler ve Etiketler: Yazıları kategorilere ve etiketlere göre filtreleyebilirsiniz.
- Arşiv Sayfaları: Yazıları tarih, yazar veya özel taksonomilere göre filtreleyebilirsiniz.
Özel arama sistemleri, daha gelişmiş arama özellikleri sunar. Örneğin, belirli alanlarda arama yapma, çoklu kriterlere göre filtreleme veya özel post türlerinde arama gibi işlevler ekleyebilirsiniz.
a) Özel Arama Formu Oluşturma
Aşağıda, özel bir arama formu örneği bulunmaktadır:
HTML:
<form role="search" method="get" action="<?php echo home_url('/'); ?>">
<input type="text" name="s" placeholder="Ara..." value="<?php echo get_search_query(); ?>">
<input type="hidden" name="post_type" value="product"> <!-- Özel post türü için -->
<button type="submit">Ara</button>
</form>
b) Özel Arama Sorguları
WordPress,
WP_Query
sınıfı ile özel arama sorguları oluşturmanıza olanak tanır. Örneğin, belirli bir kategorideki yazıları aramak için:
PHP:
$args = array(
's' => get_search_query(),
'category_name' => 'teknoloji', // Belirli bir kategoride arama
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
the_title();
}
} else {
echo 'Sonuç bulunamadı.';
}
wp_reset_postdata();
Özel filtreleme sistemleri, kullanıcıların içerikleri belirli kriterlere göre filtrelemesini sağlar. Örneğin, fiyat aralığına, renge veya diğer özel alanlara göre filtreleme yapabilirsiniz.
a) Özel Filtreleme Formu
Aşağıda, özel bir filtreleme formu örneği bulunmaktadır:
HTML:
<form method="GET" action="<?php echo home_url('/'); ?>">
<label for="category">Kategori:</label>
<select name="category" id="category">
<option value="">Tüm Kategoriler</option>
<?php
$categories = get_categories();
foreach ($categories as $category) {
echo '<option value="' . $category->slug . '">' . $category->name . '</option>';
}
?>
</select>
<label for="price">Fiyat Aralığı:</label>
<input type="number" name="min_price" placeholder="Min Fiyat">
<input type="number" name="max_price" placeholder="Max Fiyat">
<button type="submit">Filtrele</button>
</form>
Formdan gelen verilere göre özel bir sorgu oluşturabilirsiniz:
PHP:
$args = array(
'post_type' => 'product',
);
if (!empty($_GET['category'])) {
$args['category_name'] = sanitize_text_field($_GET['category']);
}
if (!empty($_GET['min_price']) && !empty($_GET['max_price'])) {
$args['meta_query'] = array(
array(
'key' => 'price',
'value' => array($_GET['min_price'], $_GET['max_price']),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
);
}
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
the_title();
}
} else {
echo 'Sonuç bulunamadı.';
}
wp_reset_postdata();
AJAX, kullanıcıların sayfayı yenilemeden arama ve filtreleme işlemleri yapmasını sağlar. Bu, kullanıcı deneyimini önemli ölçüde artırır.
a) AJAX ile Dinamik Arama
1. JavaScript Kodları:
javascript
jQuery(document).ready(function($) {
$('#search-input').on('input', function() {
var searchQuery = $(this).val();
$.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'POST',
data: {
action: 'custom_search',
search_query: searchQuery
},
success: function(response) {
$('#search-results').html(response);
}
});
});
});
2. PHP Kodları:
php
function custom_search() {
$search_query = sanitize_text_field($_POST['search_query']);
$args = array(
's' => $search_query,
'post_type' => 'product',
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<div>' . get_the_title() . '</div>';
}
} else {
echo 'Sonuç bulunamadı.';
}
wp_die();
}
add_action('wp_ajax_custom_search', 'custom_search');
add_action('wp_ajax_nopriv_custom_search', 'custom_search');
5. Popüler Arama ve Filtreleme Eklentileri
- SearchWP: Gelişmiş arama özellikleri sunar.
- Relevanssi: Arama sonuçlarını iyileştirir.
- FacetWP: Dinamik filtreleme ve arama özellikleri sunar.
- WP Extended Search: Varsayılan arama sistemini genişletir.
- Performans: Büyük veri setlerinde arama ve filtreleme işlemleri, performans sorunlarına neden olabilir. Optimizasyon tekniklerini kullanın.
- Güvenlik: Kullanıcı girdilerini her zaman doğrulayın ve temizleyin.
- Kullanıcı Deneyimi: Arama ve filtreleme sistemlerini kullanıcı dostu hale getirin.
WordPress'te özel arama ve filtreleme sistemleri oluşturmak, sitenizin işlevselliğini ve kullanıcı deneyimini artırmak için harika bir yoldur. Bu makalede bahsedilen adımları takip ederek, kendi özel arama ve filtreleme sistemlerinizi oluşturabilir ve WordPress sitenizi daha da özelleştirebilirsiniz.