{"id":1056,"date":"2008-06-30T21:55:04","date_gmt":"2008-06-30T21:55:04","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/infinite-scroll\/"},"modified":"2013-01-26T18:38:31","modified_gmt":"2013-01-26T18:38:31","slug":"infinite-scroll","status":"closed","type":"plugin","link":"https:\/\/en-ca.wordpress.org\/plugins\/infinite-scroll\/","author":678522,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.6.2","stable_tag":"2.6.2","tested":"3.5.2","requires":"3.2","requires_php":"","requires_plugins":"","header_name":"Infinite Scroll","header_author":"Beaver6813, dirkhaim, Paul Irish, benbalter, Glenn Nelson","header_description":"","assets_banners_color":"","last_updated":"2017-11-28 12:24:31","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/www.infinite-scroll.com","header_plugin_uri":"","header_author_uri":"","rating":4.6,"author_block_rating":0,"active_installs":3000,"downloads":341268,"num_ratings":43,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":"3","2":"1","3":"1","4":"2","5":"36"},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2008.06.28","1.1.2008.09.25","1.3","1.3.1","1.5","2.0b2.121120","2.5","2.6","2.6.1","2.6.2"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":"1776869","resolution":"2","location":"plugin"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":"1776869","resolution":"3","location":"plugin"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":"1776869","resolution":"1","location":"plugin"}},"screenshots":{"1":"CSS Selector (theme) configuration options","2":"Text and image options (to display as additional posts load)","3":"Edit theme presets screen"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[221,9554,900,790,1252],"plugin_category":[59],"plugin_contributors":[78908,78911,78909,78910],"plugin_business_model":[],"class_list":["post-1056","plugin","type-plugin","status-closed","hentry","plugin_tags-ajax","plugin_tags-endless","plugin_tags-pagination","plugin_tags-scroll","plugin_tags-scrolling","plugin_category-utilities-and-tools","plugin_contributors-beaver6813","plugin_contributors-benbalter","plugin_contributors-dirkhaim","plugin_contributors-paulirish-1","plugin_committers-paulirish-1"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/infinite-scroll.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/infinite-scroll\/trunk\/screenshot-1.png?rev=1776869","caption":"CSS Selector (theme) configuration options"},{"src":"https:\/\/ps.w.org\/infinite-scroll\/trunk\/screenshot-2.png?rev=1776869","caption":"Text and image options (to display as additional posts load)"},{"src":"https:\/\/ps.w.org\/infinite-scroll\/trunk\/screenshot-3.png?rev=1776869","caption":"Edit theme presets screen"}],"raw_content":"<!--section=description-->\n<p>Infinite scroll has been called autopagerize, unpaginate, endless pages. But essentially it is pre-fetching content from a subsequent page and adding it directly to the user\u2019s current page.<\/p>\n\n<p>When a user scrolls towards the bottom of the page, the next page of posts is automatically retrieved and appended. This means they never need to click \"Next Page\", which <em>dramatically increases stickiness<\/em>.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Works out-of-the-box for many popular WordPress themes -- just activate the plugin and scroll<\/li>\n<li>Fully customizable to adapt to your site and theme<\/li>\n<li>Requires no (hopefully) template hacking, only a knowledge of CSS selectors.<\/li>\n<li>Relies on shared database of common themes to simplify installation process<\/li>\n<li>Maintain local database of theme presets for all installed themes (shared across network on multisite installs)<\/li>\n<li>Countless API endpoints to modify the behavior.<\/li>\n<li>Backwards compatible: Will not break RSS readers, mobile devices, or browsers with javascript<\/li>\n<\/ul>\n\n<p>Full information on <a href=\"http:\/\/www.infinite-scroll.com\">infinite-scroll.com<\/a><\/p>\n\n<!--section=installation-->\n<h4>Automatic Install<\/h4>\n\n<ol>\n<li>Login to your WordPress site as an Administrator<\/li>\n<li>Navigate to Plugins-&gt;Add New from the menu on the left<\/li>\n<li>Search for \"Infinite Scroll\"<\/li>\n<li>Click \"Install\"<\/li>\n<li>Click \"Activate Now\"<\/li>\n<\/ol>\n\n<h4>Manual Install<\/h4>\n\n<ol>\n<li>Download the plugin from the link in the top left corner<\/li>\n<li>Unzip the file, and upload the resulting \"infinite-scroll\" folder to your \"\/wp-content\/plugins directory\" as \"\/wp-content\/plugins\/infinite-scroll\"<\/li>\n<li>Log into your WordPress install as an administrator, and navigate to the plugins screen from the left-hand menu<\/li>\n<li>Activate Infinite Scroll<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt>Installation Instructions<\/dt>\n<dd><h4>Automatic Install<\/h4>\n\n<ol>\n<li>Login to your WordPress site as an Administrator<\/li>\n<li>Navigate to Plugins-&gt;Add New from the menu on the left<\/li>\n<li>Search for \"Infinite Scroll\"<\/li>\n<li>Click \"Install\"<\/li>\n<li>Click \"Activate Now\"<\/li>\n<\/ol>\n\n<h4>Manual Install<\/h4>\n\n<ol>\n<li>Download the plugin from the link in the top left corner<\/li>\n<li>Unzip the file, and upload the resulting \"infinite-scroll\" folder to your \"\/wp-content\/plugins directory\" as \"\/wp-content\/plugins\/infinite-scroll\"<\/li>\n<li>Log into your WordPress install as an administrator, and navigate to the plugins screen from the left-hand menu<\/li>\n<li>Activate Infinite Scroll<\/li>\n<\/ol><\/dd>\n<dt>What exactly is infinite scrolling?<\/dt>\n<dd><p>Essentially it is pre-fetching content from a subsequent page and adding it directly to the user\u2019s current page. <a href=\"http:\/\/www.infinite-scroll.com\/the-interaction-design-pattern\/\">More Information<\/a><\/p><\/dd>\n<dt>Can I change the number of posts loaded?<\/dt>\n<dd><p>Yes. Go to Settings -&gt; Reading in your WordPress administrative dashboard.<\/p><\/dd>\n<dt>How do I change the alignment of the loading image?<\/dt>\n<dd><p>Add the following to your theme's css: <code>#infscr-loading img { text-align: ALIGNMENT; }<\/code> where \"ALIGNMENT\" is either <code>left<\/code>, <code>right<\/code>, or <code>center<\/code>.<\/p><\/dd>\n<dt>How can I pass additional arguments such as behavior or callbacks to the script?<\/dt>\n<dd><p>Add a filter to <code>infinite_scroll_options<\/code> and adds additional options to the options array.<\/p><\/dd>\n<dt>Is the plugin available in my language?<\/dt>\n<dd><p>If you enjoy the plugin and are interested in contributing a translation (it's super easy), please take a look at the <a href=\"http:\/\/codex.wordpress.org\/Translating_WordPress\">Translating WordPress<\/a> page.<\/p><\/dd>\n<dt>Is it SEO-Friendly?<\/dt>\n<dd><p>Yes all enhancements are made via javascript only, so search spiders see no difference.<\/p><\/dd>\n<dt>Is it accessible?<\/dt>\n<dd><p>Things won\u2019t change for screen-readers. This technique degrades gracefully.<\/p><\/dd>\n<dt>Does it still keep going, even at the end of the blog?<\/dt>\n<dd><p>Infinite scroll is configured to die when it hits a 404 Not Found status code, so when it goes through all your archives it should hit a \/page\/43\/ (or something) that doesn\u2019t exist, then show a message \"Congrats, you\u2019ve reached the end of the internet.\" Some WordPress themes don\u2019t report not found pages with a 404. Try a different theme or contacting the theme author.<\/p><\/dd>\n<dt>Do I need to edit my theme to make this work?<\/dt>\n<dd><p>Probably not, nope.<\/p><\/dd>\n<dt>How do I pass additional arguments such as callbacks to the Infinite Scroll script?<\/dt>\n<dd><p>To pass additional arguments to the Infinite Scroll script, add the following code to either your theme's <code>functions.php<\/code> or to a stand-alone plugin file.<\/p>\n\n<pre><code>`\n<\/code><\/pre>\n\n<p>function my_infinite_scroll_options_filter( $options ) {\n     $options['callback'] = 'my_callback';\n     $options['another_parameter'] = 'another_value';\n     return $options;\n}<\/p>\n\n<p>add_filter( 'infinite_scroll_js_options', 'my_infinite_scroll_options_filter' );\n    `<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5<\/h4>\n\n<ul>\n<li>Plugin completely rewritten from the bottom up<\/li>\n<li><strong>Note: you will need to manually reactivate this plugin after upgrading<\/strong><\/li>\n<li>Minimum WordPress version required now to <strong>3.2<\/strong><\/li>\n<li>Added support for internationalization (see FAQ for information on translating)<\/li>\n<li>Added support for custom post types (now works on all pages but <code>is_singular()<\/code>)<\/li>\n<li>Options screens significantly simplified with additional help text<\/li>\n<li>Presets screen now uses standard WordPress administrative interface<\/li>\n<li>Ability to submit your theme's CSS Selectors to the community CSS selector database to aid others with installation<\/li>\n<li>Changes to presets are now made inline; saved via AJAX without page reload<\/li>\n<li>Added additional API endpoints for developers to modify and customize plugin behavior<\/li>\n<li>Loading image now uses native WordPress uploader and can accept arbitrary URL or image from media gallery<\/li>\n<li>Loading and finished text now uses native WordPress TinyMCE editor<\/li>\n<li>If site administrator has not entered CSS selectors and preset is known, plugin will default to preset<\/li>\n<li>Any preset entered by site (or network) administrator will now override community contributed presets by default<\/li>\n<li>Community contributed CSS selector presets are now stored in the database allowing for plugin directory to be unwritable (security enhancement)<\/li>\n<li>Prompts users to default to CSS selector preset when available<\/li>\n<li>Presets now support child themes<\/li>\n<li>Community contributed CSS selectors now stored as standard CSV and asynchronously update daily (performance and compatibility enhancement)<\/li>\n<li>Site (or network) specific CSS selector presets are now stored in the database (security enhancement)<\/li>\n<li>CSS Preset updater now uses WP_HTTP class (compatibility enhancement)<\/li>\n<li>Javascript file now served directly to user (rather than proxied via PHP) to allow for browser caching, minification, serving via CDN, and better integration with caching plugins (performance enhancement)<\/li>\n<li>Javascript options stored natively in database and passed directly to script via WordPress's <code>wp_localize_script<\/code> function (performance and customizability enhancement)<\/li>\n<li>No longer relies on deprecated user levels to determine permissions<\/li>\n<li>Default loading and fished messages changed<\/li>\n<li>Fixes for error and warnings when run with <code>WP_DEBUG<\/code> enabled<\/li>\n<li>Removed prompt for option to activate infinite scrolling for only certain users (defaults to all)<\/li>\n<li>Removed prompt for option to toggle debug mode (defaults to <code>WP_DEBUG<\/code> or <code>SCRIPT_DEBUG<\/code>)<\/li>\n<li>Removed prompt for option to toggle scrolling behavior (defaults to automatic)<\/li>\n<li>Removed prompt for additional callbacks<\/li>\n<li>Removed prompt to select image alignment (defaults to left, can override via CSS)<\/li>\n<li>Significant code clean up, file reorganization, and in-line documentation to conform to WordPress coding and style standards (whitespace, double v. single quotes, tab drift, trailing commas, closing PHP tags, etc.)<\/li>\n<li>Classes loaded as sub-classes (rather than extending parent class) to prevent classes from becoming out of sync<\/li>\n<li>Added phpdoc style documentation<\/li>\n<li>Plugin file name changed to conform to standard WordPress naming conventions<\/li>\n<li>License (GPL) included with distribution<\/li>\n<li>Version numbering simplified<\/li>\n<\/ul>\n\n<h4>2.0b2.120111<\/h4>\n\n<ul>\n<li>Added infinite_scroll_load_override filter to manually force infinite-scroll to load on a page.<\/li>\n<li>Thanks to https:\/\/github.com\/samargulies for the above patch.<\/li>\n<\/ul>\n\n<h4>2.0b2.111218<\/h4>\n\n<ul>\n<li>Updated preset DB with basic themes<\/li>\n<li>Made a few fixes in options\/presets to prep for main release.<\/li>\n<li>Changed hook used by 404 detection to template_redirect from wp.<\/li>\n<\/ul>\n\n<h4>2.0b2.110822<\/h4>\n\n<ul>\n<li>Removed registration\/enqueuing script in favor of just enqueueing<\/li>\n<li>Fixed bug\/typo in compressed init script<\/li>\n<\/ul>\n\n<h4>2.0b2.110821<\/h4>\n\n<ul>\n<li>Converted options pages to use Settings API<\/li>\n<li>Added behavior selection (Manual triggering)<\/li>\n<\/ul>\n\n<h4>2.0b2.110818<\/h4>\n\n<ul>\n<li>Completely revamped admin panel adding more modular management<\/li>\n<li>Added ability to center loading image<\/li>\n<li>Added WYSIWYG editor to HTML allowed fields in admin panel<\/li>\n<li>Updated Javascript callback to pass DOM for new elements added<\/li>\n<li>Added Preset manager<\/li>\n<li>Added ability to auto-fill selector fields from theme preset<\/li>\n<li>Overhaul of underlying code, separating out into classes to cut down\non code processed (and hence load time) for the end-user.<\/li>\n<\/ul>\n\n<h4>2.0b2.110723<\/h4>\n\n<ul>\n<li>Improved escaping on settings to allow greater flexibility.<\/li>\n<li>Fixed issue with jQuery not loading if WP version is up to date.<\/li>\n<li>Fixed issue with plugin showing twice on plugin list.<\/li>\n<\/ul>\n\n<h4>2.0b2.110716<\/h4>\n\n<ul>\n<li>Moved init script from direct page insertion to separate script.<\/li>\n<li>Cleaned up unneeded declared constants.<\/li>\n<li>Combined init script and library into one minified script.<\/li>\n<li>This fixes an incompatibility with HeadJS plugin.<\/li>\n<\/ul>\n\n<h4>2.0b2.110713<\/h4>\n\n<ul>\n<li>Fixed multiple jQuery loaded conflicts.<\/li>\n<li>Now uses standard WordPress javascript insertion.<\/li>\n<li>Loads locally stored jQuery 1.6.2 if current version is &lt; 1.6\nthis can only be detected through WordPress now, hence the fix\nfor multiple versions conflicting (some naughty themes don't\nuse WordPress's javascript loading).<\/li>\n<\/ul>\n\n<h4>2.0b2.110709<\/h4>\n\n<ul>\n<li>FIX: Default options not being recursively copied.<\/li>\n<li>Updated to new options layout.<\/li>\n<li>Callback fix.<\/li>\n<\/ul>\n\n<h4>2.0b2.110706<\/h4>\n\n<ul>\n<li>HTTPS loading image fix.<\/li>\n<li>Better debug support (switches between minified and non).<\/li>\n<\/ul>\n\n<h4>2.0b2.110629<\/h4>\n\n<ul>\n<li>Callback (custom javascript) fix.<\/li>\n<li>IE9 binding bug fix.<\/li>\n<\/ul>\n\n<h4>2.0b2.110628<\/h4>\n\n<ul>\n<li>Modified the method used to determine the link paths (bug fix)<\/li>\n<\/ul>\n\n<h4>2.0b2.110617<\/h4>\n\n<ul>\n<li>Updated core javascript to version 2.0b2.110617 (full revamp).<\/li>\n<li>General cleanup\/tidy of plugin itself.<\/li>\n<li>Fixed bugs with numerical sub-domains (now uses site_url to determine path).<\/li>\n<li>Supports archives, tags, searches.<\/li>\n<li>Wider theme support.<\/li>\n<li>Simplified plugin options page, added loading image upload ability, added option for debug mode.<\/li>\n<li>Removed annoying reminder that showed on all admin pages.<\/li>\n<li>Forces 404 header when no more posts are available.<\/li>\n<\/ul>\n\n<h4>1.5.100504<\/h4>\n\n<ul>\n<li>New appending technique using document fragments.<\/li>\n<li>Callback receives the contentSelector elem as its first argument,\nand an array of the new elements as the second argument<\/li>\n<\/ul>\n\n<h4>1.4.100210<\/h4>\n\n<p>Fixed small bug that jQuery 1.4 introduced.<\/p>\n\n<h4>1.4<\/h4>\n\n<p>Proper WordPress method (enqueue_script) removed because it just breaks too often\nJS updated with some custom method action.<\/p>\n\n<h4>1.3<\/h4>\n\n<p>Use proper WordPress function to register the javascript\nUse plugins_url to determine plugin url<\/p>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>2009 August 4th<\/li>\n<li><code>get_option('siteurl')<\/code> fix made.<\/li>\n<li>jQuery plugin version updated. many more options available.<\/li>\n<li>Release backwards compatible<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>2008 September 25<\/li>\n<li>JavaScript rewritten as a proper jQuery plugin.<\/li>\n<li>Added animation<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>June 29 - 1.0 release.<\/li>\n<\/ul>","raw_excerpt":"Automatically append the next page of posts (via AJAX) to your page when a user scrolls to the bottom.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=1056"}],"author":[{"embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/paulirish-1"}],"wp:attachment":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=1056"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=1056"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=1056"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=1056"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}