首先只显示基本内容,向下滚动时会添加更多内容。 这对于提高您网站的性能非常有用(红色ucing 加载时间),并改善用户体验(因为加载更多项目不需要任何操作,例如单击按钮)。
在这里,我们将了解为什么以及如何在您自己的网站中使用它
范例无限滚动网站
检查那些大傢伙在做什么总是好的,这种效果(很多次难以察觉)很多大型网站和应用程序,如Facebook(现场直播),Twitter,Pinterest,Feedly。
资产
我们会用的 Paul Irish的JS插件。 下载并将其安装在主题的js文件夹中。 我们将使用Twenty Twelve进行学习建议,但可以随意在任何主题中使用它(如果它不适合你,也可以发布问题)。
另外,您还需要一个漂亮的gif图像作为“加载”消息。 您可以在那里找到很多,但是 AjaxLoad 网站有一个非常棒的工具,可以帮助您使用许多预设样式,您可以选择更适合您的配色方案的颜色。
一旦你有了Wp-content / themes / twentytwelve / js下的脚本和漂亮的gif图像,我们就可以开始了!
PHP 代码
好的,不要害怕,我们会给你一个复制和粘贴片段,但这是我们需要做的才能让它工作:
- 创建一个将在内部加载和注册无限滚动插件的函数–这将防止 WordPress 从加载它两次并破坏主题的功能
- 仅当您的页面不是单个帖子时才加载脚本-只有要显示多个帖子的页面才需要加载更多项。
功能。php 文件是您主题的核心。 所有功能通常都在那里,或者从其他文件中调用。 因此,我们可以在您的函数文件中添加此代码以添加无限滚动支持(将其添加到文件末尾):
<?php /************************* WEB REVENUE INFINITE SCROLLING *************************/ /* Function that will register and enqueue the infinite scolling's script to be used in the theme. */ function twentytwelve_script_infinite_scrolling(){ wp_register_script( 'infinite_scrolling',//name of script get_template_directory_uri().'/js/jquery.infinitescroll.min.js',//where the file is array('jquery'),//this script requires a jquery script null,//don't have a script version number true//script will de placed on footer ); if(!is_singular()){ //only when we have more than 1 post //we'll load this script wp_enqueue_script('infinite_scrolling'); } } //Register our custom scripts! add_action('wp_enqueue_scripts', 'twentytwelve_script_infinite_scrolling'); /* Function that will set infinite scrolling to be displayed in the page. */ function set_infinite_scrolling(){ if(!is_singular()){//again, only when we have more than 1 post //add js script below ?> <script type="text/javascript"> /* This is the inifinite scrolling setting, you can modify this at your will */ var inf_scrolling = { /* img: is the loading image path, add a nice gif loading icon there msgText: the loading message finishedMsg: the finished loading message */ loading:{ img: "<? echo get_template_directory_uri(); ?>/images/ajax-loading.gif", msgText: "Loading next posts....", finishedMsg: "Posts loaded!!", }, /*Next item is set nextSelector. NextSelector is the css class of page navigation. In our case is #nav-below .nav-previous a */ "nextSelector":"#nav-below .nav-previous a", //navSelector is a css id of page navigation "navSelector":"#nav-below", //itemSelector is the div where post is displayed "itemSelector":"article", //contentSelector is the div where page content (posts) is displayed "contentSelector":"#content" }; /* Last thing to do is configure contentSelector to infinite scroll, with a function jquery from infinite-scroll.min.js */ jQuery(inf_scrolling.contentSelector).infinitescroll(inf_scrolling); </script> <? } } /* we need to add this action on page's footer. 100 is a priority number that correpond a later execution. */ add_action( 'wp_footer', 'set_infinite_scrolling',100 ); ?>
替代方法 – 加载页面和自定义帖子类型
之前的代码将加载您的所有帖子,但如果您想要显示页面或自定义帖子类型(如投资组合项目,如果您的主题支持它)会怎样?好吧,我们可以稍微修改一下代码并使其正常工作。
唯一需要的调整是在索引,类别或任何其他将加载项目的文件中,您将用不同的代码替换当前循环。 您可以通过以下代码识别您的循环:
while(have_posts()) :
所以,一旦你找到它,你可以使用这个神奇的代码:
<?php /* 在無限滾動時只顯示頁面! 這是秘密:您可以根據需要設置 post_type ,這很簡單! 一些 post_types 可能是:portfolio, project, product 我們可以添加任意數量的帖子類型,用逗號分隔它們,例如 'post', 'page', 'product' */ $args = array( // 設置參數'post_type' => 'page', // 只有頁面 ); 查詢帖子($args); // 加載帖子 if ( have_posts() ) : ?> <?php /* 開始循環 */ ?> <?php 而(有_posts()):the_post(); //顯示這些項目的“通常”循環代碼?>
結論
这只是一篇“热身”文章。 你可以用这种方法做很多事情。 例如,您可以在商店中加载产品(使用 WooCommerce,也许)当用户滚动时,或者甚至在那里添加更多的 JS 和 CSS 代码来为帖子图像创建和类似视差的加载器。
你怎么看待这种技术?你喜欢它吗?你会用吗?使用评论部分分享您的想法!
原文链接:https://www.itaoda.cn/blog/3270.html,转载请注明出处。
评论0