Chcete-li v WordPressu odstranit stránkování a nastavit nekonečné načítání obsahu, můžete postupovat několika způsoby. Nejčastěji se používá kombinace JavaScriptu (nebo jQuery) a AJAXu pro dynamické načítání příspěvků nebo produktů na vašem webu bez nutnosti ručního přechodu mezi stránkami. Zde je základní přehled toho, jak toho dosáhnout:
Obsah článku
1. Vytvořte Child Theme
Pokud již používáte child theme, můžete tento krok přeskočit. Pokud ne, je doporučeno vytvořit dětské téma, aby vaše změny nebyly přepsány při aktualizaci hlavního tématu.
2. Přidání AJAXové funkce
V souboru functions.php
vašeho dětského téma přidejte funkci pro AJAXové načítání příspěvků. Tato funkce bude obsahovat WP_Query pro načtení příspěvků a kontrolu, zda existují další příspěvky k načtení.
function ajax_infinite_scroll() {
$paged = $_POST['page'] + 1; // Příjem stránky k načtení přes AJAX
$args = array(
'post_type' => 'post', // Nastavení typu příspěvku, který chcete načítat
'paged' => $paged,
);
$query = new WP_Query($args);
if($query->have_posts()):
while($query->have_posts()): $query->the_post();
get_template_part('content', get_post_format());
endwhile;
endif;
wp_reset_postdata();
die();
}
add_action('wp_ajax_infinite_scroll', 'ajax_infinite_scroll'); // pro přihlášené uživatele
add_action('wp_ajax_nopriv_infinite_scroll', 'ajax_infinite_scroll'); // pro nepřihlášené uživatele
3. Přidání JavaScriptu pro načítání příspěvků
Vytvořte soubor JavaScript v tématu a zaregistrujte ho ve funkcích vašeho tématu. Tento skript bude detekovat, když uživatel dosáhne konce stránky a automaticky načte další příspěvky.
jQuery(function($){
var page = 2;
$(window).scroll(function() {
if ($(window).scrollTop() + $(window).height() >= $(document).height()) {
var data = {
'action': 'infinite_scroll',
'page': page
};
$.post('/wp-admin/admin-ajax.php', data, function(response) {
if(response) {
$('#main').append(response);
page++;
}
});
}
});
});
4. Odstranění existujícího stránkování
Naleznete místo ve vašem tématu, kde je implementováno stránkování, a odstraňte nebo zakomentujte relevantní kód. Toto bývá často v souborech jako index.php
, archive.php
, search.php
atd.
Upozornění
- Nezapomeňte, že tento přístup může mít vliv na SEO, protože vyhledávače nemusí být schopny procházet veškerý obsah, pokud je načítán dynamicky.
- Testujte změny v různých prohlížečích a zařízeních, abyste se ujistili, že nekonečné načítání funguje podle očekávání.
Pokud nejste obeznámeni s kódováním nebo preferujete jednodušší řešení, můžete také využít pluginy jako „Ajax Load More“, které nabízejí podobnou funkcionalitu bez nutnosti psát kód.