{"id":24895,"date":"2021-05-20T12:19:00","date_gmt":"2021-05-20T09:19:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24895"},"modified":"2021-10-17T19:01:18","modified_gmt":"2021-10-17T16:01:18","slug":"kuidas-laadida-wordpressi-postitusi-ajax-iga","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-laadida-wordpressi-postitusi-ajax-iga\/","title":{"rendered":"Kuidas laadida WordPressi postitusi AJAX-iga"},"content":{"rendered":"<p>Mul on <a href=\"https:\/\/www.youtube.com\/channel\/UCosi8Kv8-EPLt5TBJLlsWJA\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">YouTube&#8217;i kanal,<\/a> kuhu postitan programmeerimise ja tarkvaraga seotud videoid. Hiljuti k\u00fcsis \u00fcks tellija minult, kuidas WordPressi postitust AJAX-iga laadida. Vastuseks talle otsustasin kirjutada tema k\u00fcsimusele postituse. Nii et selles artiklis uurime, kuidas WordPressi postitust AJAX-iga laadida, kasutades nuppu ja lehek\u00fclje kerimist rohkem koormusi.<\/p>\n<p>Erinevus suurema koormuse ja lehe kerimise vahel on \u00fcsna lihtne. Kui kasutate nuppu Laadi rohkem, peate j\u00e4rgmise postituskomplekti n\u00e4gemiseks kl\u00f5psama nupul. Ja sirvimise korral peaks vaateakna l\u00f5ppu kerides j\u00e4rgmine postituste komplekt automaatselt laadima.<\/p>\n<p>Oletame, et teil on paar postitust ja peate lehe laadimisel kuvama 2 postitust ja seej\u00e4rel kl\u00f5psates nuppu &#8216;Laadi rohkem&#8217; v\u00f5i &#8216;Lehek\u00fclje kerimine&#8217;, peaksid j\u00e4rgmised 2 postitust kuvama. See protsess j\u00e4tkub seni, kuni kuvatakse k\u00f5ik teie postitused.<\/p>\n<p>Looge uus leht nimega &quot;Blogi&quot;. Postituste kuvamiseks lehel Blogi looge <code>page-blog.php<\/code>oma aktiivse teema kataloogis kohandatud mall .<\/p>\n<p>N\u00fc\u00fcd, kui kasutajad k\u00fclastavad teie ajaveebi lehte, peaksid nad n\u00e4gema kahte postitust. Niisiis, lisage allpool olev kood oma kohandatud mallifaili.<\/p>\n<pre><code>&lt;div class=\"entry-content\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;?php\n\u00a0\u00a0\u00a0\u00a0$args = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_type' =&gt; 'post',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_status' =&gt; 'publish',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'posts_per_page' =&gt; '2',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'paged' =&gt; 1,\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0$blog_posts = new WP_Query( $args );\n\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0&lt;?php if ($blog_posts-&gt;have_posts() ): ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"blog-posts\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php while ($blog_posts-&gt;have_posts() ): $blog_posts-&gt;the_post(); ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;\/h2&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php the_excerpt(); ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php endwhile; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"loadmore\"&gt;Load More...&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;?php endif; ?&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Siin kasutasin v\u00f5tit &#8216;paged&#8217; ja andsin sellele v\u00e4\u00e4rtuse &#8216;1&#8217;. &#8216;paged&#8217; on v\u00f5ti, mida WordPressis kasutatakse lehek\u00fclgede otsimisel. &#8216;paged&#8217; =&gt; 1 t\u00e4hendab esimest lehte.<\/p>\n<p>M\u00e4rkaksite div-elementi klassiga &#8216;loadmore&#8217;. Kl\u00f5psates nupul Laadi rohkem, helistame Ajaxile ja saame j\u00e4rgmise postituste komplekti.<\/p>\n<h3>Laadige WordPressi postitused Ajaxiga nupule Load More<\/h3>\n<p>Ajaxi k\u00f5ne tegemiseks peate lisama JS-faili WordPressi keskkonda. Looge kataloogis <code>custom.js<\/code>fail <code>js<\/code>ja lisage seej\u00e4rel <code>functions.php<\/code>faili alla kood .<\/p>\n<pre><code>function blog_scripts() {\n\u00a0\u00a0\u00a0\u00a0\/\/ Register the script\n\u00a0\u00a0\u00a0\u00a0wp_register_script( 'custom-script', get_stylesheet_directory_uri(). '\/js\/custom.js', array('jquery'), false, true );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Localize the script with new data\n\u00a0\u00a0\u00a0\u00a0$script_data_array = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ajaxurl' =&gt; admin_url( 'admin-ajax.php' ),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'security' =&gt; wp_create_nonce( 'load_more_posts' ),\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0wp_localize_script( 'custom-script', 'blog', $script_data_array );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Enqueued script with localized data.\n\u00a0\u00a0\u00a0\u00a0wp_enqueue_script( 'custom-script' );\n}\nadd_action( 'wp_enqueue_scripts', 'blog_scripts' );<\/code><\/pre>\n<p>J\u00e4rgmisena kirjutame natuke jQuery ja helistame Ajaxi k\u00f5ne, mis vastutasuks annab j\u00e4rgmised postitused.<\/p>\n<p><strong>custom.js<\/strong><\/p>\n<pre><code>var page = 2;\njQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0$('body').on('click', '.loadmore', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'action': 'load_posts_by_ajax',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'page': page,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'security': blog.security\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.post(blog.ajaxurl, data, function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($.trim(response) != '') {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('.blog-posts').append(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0page++;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('.loadmore').hide();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0});\n});<\/code><\/pre>\n<p>Mida me siin teeme, v\u00f5tsin javascripti muutuja &#8216;page&#8217; algv\u00e4\u00e4rtusega 2, kuna alustame teise lehe lehitsemist. Ma suurendan seda &#8216;lehe&#8217; muutujat p\u00e4rast Ajaxi vastuse saamist. P\u00e4rast vastuse saamist lisan selle olemasolevate postituste loendisse.<\/p>\n<p>Samuti kasutasin toimingu parameetrit Ajaxi k\u00f5ne jaoks &#8216;load_posts_by_ajax&#8217;, mis peab kaardistama WordPressi toimingutega. Avage oma <code>functions.php<\/code>fail ja lisage allolev kood faili.<\/p>\n<pre><code>add_action('wp_ajax_load_posts_by_ajax', 'load_posts_by_ajax_callback');\nadd_action('wp_ajax_nopriv_load_posts_by_ajax', 'load_posts_by_ajax_callback');<\/code><\/pre>\n<p>\u00dclaltoodud WordPressi toimingute korral nimetame tagasihelistamisfunktsiooni, <code>load_posts_by_ajax_callback<\/code>mille kavatsen j\u00e4rgmises etapis m\u00e4\u00e4ratleda. Selle funktsiooni saate m\u00e4\u00e4ratleda oma <code>functions.php<\/code>.<\/p>\n<pre><code>function load_posts_by_ajax_callback() {\n\u00a0\u00a0\u00a0\u00a0check_ajax_referer('load_more_posts', 'security');\n\u00a0\u00a0\u00a0\u00a0$paged = $_POST['page'];\n\u00a0\u00a0\u00a0\u00a0$args = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_type' =&gt; 'post',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_status' =&gt; 'publish',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'posts_per_page' =&gt; '2',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'paged' =&gt; $paged,\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0$blog_posts = new WP_Query( $args );\n\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0&lt;?php if ($blog_posts-&gt;have_posts() ): ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php while ($blog_posts-&gt;have_posts() ): $blog_posts-&gt;the_post(); ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;\/h2&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php the_excerpt(); ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php endwhile; ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php\n\u00a0\u00a0\u00a0\u00a0endif;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0wp_die();\n}<\/code><\/pre>\n<p>N\u00fc\u00fcd, kui kl\u00f5psate nupul &quot;Laadi rohkem&quot;, laadib j\u00e4rgmised postitused Ajaxi kaudu ja tagastab selle vastuseks. Eespool kirjutatud JavaScripti kood k\u00e4sitleb \u00fclej\u00e4\u00e4nud asju.<\/p>\n<h3>Laadige WordPressi postitused Ajaxiga lehel kerimine<\/h3>\n<p>M\u00f5ni kasutaja ei pruugi soovida Ajaxiga postituste kuvamiseks rohkem nuppu. Selle asemel eelistavad nad, et postitused kuvatakse siis, kui kasutaja j\u00f5uab vaateava l\u00f5ppu.<\/p>\n<p>Selle saavutamiseks peate kirjutama loogika, mis fikseerib s\u00fcndmuse vaateava l\u00f5pus, \u00fclej\u00e4\u00e4nud kood on sama mis nupul &quot;Laadi rohkem&quot;. Allpool on lehe kerimise jQuery kood.<\/p>\n<pre><code>jQuery(window).scroll(function($) {\n\u00a0\u00a0\u00a0\u00a0if (jQuery(window).scrollTop() + jQuery(window).height() &gt; jQuery(document).height()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'action': 'load_posts_by_ajax',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'page': page,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'security': blog.security\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.post(blog.ajaxurl, data, function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($.trim(response) != '') {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('.blog-posts').append(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0page++;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('.loadmore').hide();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n});<\/code><\/pre>\n<p>See selleks! V\u00f5ite proovida. Tahaksin teada teie m\u00f5tteid ja ettepanekuid allpool toodud kommentaarides.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/ajaxi-faili-uleslaadimise-integreerimine-wordpressi\/\" title=\"Ajaxi faili \u00fcleslaadimise integreerimine WordPressi\">Ajaxi faili \u00fcleslaadimise integreerimine WordPressi<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/jquery-ajaxi-kasutamine-wordpressis\/\" title=\"JQuery Ajaxi kasutamine WordPressis\">JQuery Ajaxi kasutamine WordPressis<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4nap\u00e4eval on WordPressi postituse AJAX-iga laadimine v\u00e4ga levinud. WordPress ei paku seda vaikimisi. Selles \u00f5petuses selgitame, kuidas seda \u00fclesannet k\u00e4sitseda.<\/p>\n","protected":false},"author":1,"featured_media":21653,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[609],"tags":[842],"class_list":["post-24895","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=24895"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21653"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=24895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=24895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=24895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}