diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..d632abe387d802229a8cf427ad99422027490dfe
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,35 @@
+# A set of files you probably don't want in your WordPress.org distribution
+/.distignore export-ignore
+/.editorconfig export-ignore
+/.gitattributes export-ignore
+/.gitignore export-ignore
+/.gitlab-ci.yml export-ignore
+/.travis.yml export-ignore
+/.DS_Store export-ignore
+/Thumbs.db export-ignore
+/behat.yml export-ignore
+/bitbucket-pipelines.yml export-ignore
+/bin export-ignore
+/.circleci/config.yml export-ignore
+/composer.json export-ignore
+/composer.lock export-ignore
+/Gruntfile.js export-ignore
+/package.json export-ignore
+/package-lock.json export-ignore
+/phpunit.xml export-ignore
+/phpunit.xml.dist export-ignore
+/multisite.xml export-ignore
+/multisite.xml.dist export-ignore
+/.phpcs.xml export-ignore
+/phpcs.xml export-ignore
+/.phpcs.xml.dist export-ignore
+/phpcs.xml.dist export-ignore
+/README.md export-ignore
+/wp-cli.local.yml export-ignore
+/yarn.lock export-ignore
+/tests export-ignore
+/vendor export-ignore
+/node_modules export-ignore
+/*.sql export-ignore
+/*.tar.gz export-ignore
+/*.zip export-ignore
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5b8d931283958722cf93010bbaa60cc982905ad8..fed02095c6be434b90c51aa94968875a9892b945 100755
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,6 +26,7 @@ before_script:
   - phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs,$HOME/.composer/vendor/automattic/vipwpcs,$HOME/.composer/vendor/phpcompatibility/php-compatibility,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp
 
 PHPunit:PHP7.2:MySQL:
+  stage: test
   image: containers.ethitter.com:443/docker/images/php:7.2
   services:
     - mysql:5.6
@@ -35,6 +36,7 @@ PHPunit:PHP7.2:MySQL:
     - phpunit
 
 PHPunit:PHP7.3:MySQL:
+  stage: test
   image: containers.ethitter.com:443/docker/images/php:7.3
   services:
     - mysql:5.6
@@ -43,6 +45,15 @@ PHPunit:PHP7.3:MySQL:
     - phpcs -n
     - phpunit
 
+PluginSVN:
+  stage: deploy
+  image: containers.ethitter.com:443/docker/images/php:7.3
+  before_script:
+    - curl -o ./bin/deploy.sh https://git-cdn.e15r.co/open-source/wp-org-plugin-deploy/raw/master/scripts/deploy.sh
+    - chmod +x ./bin/deploy.sh
+  script: ./bin/deploy.sh
+  when: on_success
+
 sast:
   image: docker:stable
   variables:
diff --git a/README.md b/README.md
index f64a8229c008531c7aaceb332e2c6d148359aa24..5e9a2723362568fd2e96c9fda876c5d6794fbd79 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@
 **Donate link:** http://www.thinkoomph.com/plugins-modules/view-all-posts-pages/  
 **Tags:** view all, pages, paged, paged post, multipage, single view, single page, wp_link_pages, nextpage, next page, quicktag  
 **Requires at least:** 3.2.1  
-**Tested up to:** 5.0  
-**Stable tag:** 0.9.1  
+**Tested up to:** 5.3  
+**Stable tag:** 0.9.3  
 **License:** GPLv2 or later  
 **License URI:** http://www.gnu.org/licenses/gpl-2.0.html  
 
@@ -45,7 +45,11 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 
 ## Changelog ##
 
+### 0.9.3 ###
+* Compatible with WordPress 5.2
+
 ### 0.9.2 ###
+* Compatible with PHP 7.3
 * Introduce PHPCS tests
 * Update plugin based on PHPCS results
 
@@ -61,7 +65,7 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 ### 0.8 ###
 * When WordPress determines a request is a 404, don't activate the plugin's functionality.
 * Convert the plugin to a singleton.
-* Audit entire plugin for translation readyness.
+* Audit entire plugin for translation readiness.
 * Correct phpdoc.
 
 ### 0.7 ###
@@ -99,6 +103,9 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 
 ## Upgrade Notice ##
 
+### 0.9.3 ###
+Ensures compatibility with WordPress 5.2.
+
 ### 0.9.2 ###
 Adds support for PHP 7.3 and fixes various PHPCS errors, neither of which should impact the plugin's functionality.
 
diff --git a/languages/view-all-posts-pages.pot b/languages/view-all-posts-pages.pot
index 3c2d1edcf5680d36318d0cc3cbecfe7e2480ad93..0a05829d10f46c9c5105769879c6ed57c7856e3f 100644
--- a/languages/view-all-posts-pages.pot
+++ b/languages/view-all-posts-pages.pot
@@ -2,10 +2,10 @@
 # This file is distributed under the same license as the View All Posts Pages package.
 msgid ""
 msgstr ""
-"Project-Id-Version: View All Posts Pages 0.9.2\n"
+"Project-Id-Version: View All Posts Pages 0.9.3\n"
 "Report-Msgid-Bugs-To: "
 "https://wordpress.org/support/plugin/view-all-posts-pages\n"
-"POT-Creation-Date: 2019-02-05 18:43:53+00:00\n"
+"POT-Creation-Date: 2019-11-23 22:03:53+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -29,99 +29,99 @@ msgstr ""
 msgid "View All"
 msgstr ""
 
-#: view-all-posts-pages.php:464 view-all-posts-pages.php:495
+#: view-all-posts-pages.php:467 view-all-posts-pages.php:498
 #. translators: 1: Plugin name.
 #. translators: 1: WordPress function name.
 msgid "%s Options"
 msgstr ""
 
-#: view-all-posts-pages.php:499
+#: view-all-posts-pages.php:502
 msgid ""
 "A \"view all\" link can be appended to WordPress' standard page navigation "
 "using the options below."
 msgstr ""
 
-#: view-all-posts-pages.php:503
+#: view-all-posts-pages.php:506
 msgid "Automatically append link to post's page navigation?"
 msgstr ""
 
-#: view-all-posts-pages.php:505 view-all-posts-pages.php:548
+#: view-all-posts-pages.php:508 view-all-posts-pages.php:551
 msgid "Yes"
 msgstr ""
 
-#: view-all-posts-pages.php:506 view-all-posts-pages.php:549
+#: view-all-posts-pages.php:509 view-all-posts-pages.php:552
 msgid "No"
 msgstr ""
 
-#: view-all-posts-pages.php:510 view-all-posts-pages.php:576
+#: view-all-posts-pages.php:513 view-all-posts-pages.php:579
 msgid "Link text:"
 msgstr ""
 
-#: view-all-posts-pages.php:516 view-all-posts-pages.php:582
+#: view-all-posts-pages.php:519 view-all-posts-pages.php:585
 msgid "Link's CSS class(es):"
 msgstr ""
 
-#: view-all-posts-pages.php:520 view-all-posts-pages.php:586
+#: view-all-posts-pages.php:523 view-all-posts-pages.php:589
 msgid ""
 "Be aware that Internet Explorer will only interpret the first two CSS "
 "classes."
 msgstr ""
 
-#: view-all-posts-pages.php:524 view-all-posts-pages.php:561
+#: view-all-posts-pages.php:527 view-all-posts-pages.php:564
 msgid "Display automatically on:"
 msgstr ""
 
-#: view-all-posts-pages.php:540
+#: view-all-posts-pages.php:543
 msgid "Standalone Link Options"
 msgstr ""
 
-#: view-all-posts-pages.php:542
+#: view-all-posts-pages.php:545
 msgid ""
 "In addition to appending the \"view all\" link to WordPress' standard "
 "navigation, link(s) can be added above and below post content."
 msgstr ""
 
-#: view-all-posts-pages.php:546
+#: view-all-posts-pages.php:549
 msgid "Automatically add links based on settings below?"
 msgstr ""
 
-#: view-all-posts-pages.php:553
+#: view-all-posts-pages.php:556
 msgid "Automatically place link:"
 msgstr ""
 
-#: view-all-posts-pages.php:555
+#: view-all-posts-pages.php:558
 msgid "Above content"
 msgstr ""
 
-#: view-all-posts-pages.php:556
+#: view-all-posts-pages.php:559
 msgid "Below content"
 msgstr ""
 
-#: view-all-posts-pages.php:557
+#: view-all-posts-pages.php:560
 msgid "Above and below content"
 msgstr ""
 
-#: view-all-posts-pages.php:590
+#: view-all-posts-pages.php:593
 msgid "Link's priority:"
 msgstr ""
 
-#: view-all-posts-pages.php:594
+#: view-all-posts-pages.php:597
 msgid ""
 "Priority determines when the link is added to a post's content. You can use "
 "the above setting to modulate the link's placement."
 msgstr ""
 
-#: view-all-posts-pages.php:595
+#: view-all-posts-pages.php:598
 msgid ""
 "The default value is <strong>10</strong>. Lower values mean the link will "
 "be added earlier, while higher values will add the link later."
 msgstr ""
 
-#: view-all-posts-pages.php:739
+#: view-all-posts-pages.php:742
 msgid "View All Post's Pages"
 msgstr ""
 
-#: view-all-posts-pages.php:744
+#: view-all-posts-pages.php:747
 #. translators: 1: Permalinks settings page URL.
 msgid ""
 "You must refresh your site's permalinks before <em>View All Post's "
@@ -130,7 +130,7 @@ msgid ""
 "Changes</em></strong> button at the bottom of the screen."
 msgstr ""
 
-#: view-all-posts-pages.php:756
+#: view-all-posts-pages.php:759
 #. translators: 1: URL to dismiss admin notice.
 msgid "When finished, click <a href=\"%s\">here</a> to hide this message."
 msgstr ""
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..c91cd6644813ca403f9cee34e6f1034a273dc410
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,401 @@
+{
+  "name": "view-all-posts-pages",
+  "version": "0.1.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true
+    },
+    "argparse": {
+      "version": "0.1.16",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+      "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+      "dev": true,
+      "requires": {
+        "underscore": "~1.7.0",
+        "underscore.string": "~2.4.0"
+      },
+      "dependencies": {
+        "underscore.string": {
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+          "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+          "dev": true
+        }
+      }
+    },
+    "async": {
+      "version": "0.1.22",
+      "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+      "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+      "dev": true
+    },
+    "coffee-script": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+      "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+      "dev": true
+    },
+    "colors": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+      "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+      "dev": true
+    },
+    "dateformat": {
+      "version": "1.0.2-1.2.3",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+      "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+      "dev": true
+    },
+    "encoding": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+      "dev": true,
+      "requires": {
+        "iconv-lite": "~0.4.13"
+      },
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        }
+      }
+    },
+    "esprima": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+      "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+      "dev": true
+    },
+    "eventemitter2": {
+      "version": "0.4.14",
+      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+      "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+      "dev": true
+    },
+    "exit": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+      "dev": true
+    },
+    "findup-sync": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+      "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+      "dev": true,
+      "requires": {
+        "glob": "~3.2.9",
+        "lodash": "~2.4.1"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "3.2.11",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+          "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+          "dev": true,
+          "requires": {
+            "inherits": "2",
+            "minimatch": "0.3"
+          }
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+          "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "2",
+            "sigmund": "~1.0.0"
+          }
+        }
+      }
+    },
+    "getobject": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+      "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+      "dev": true
+    },
+    "gettext-parser": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.1.2.tgz",
+      "integrity": "sha1-zw8MnJCJrtsO5RSZKRg+ncQ1hKc=",
+      "dev": true,
+      "requires": {
+        "encoding": "^0.1.11"
+      }
+    },
+    "glob": {
+      "version": "3.1.21",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+      "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "~1.2.0",
+        "inherits": "1",
+        "minimatch": "~0.2.11"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+          "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+          "dev": true
+        }
+      }
+    },
+    "graceful-fs": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+      "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+      "dev": true
+    },
+    "grunt": {
+      "version": "0.4.5",
+      "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+      "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+      "dev": true,
+      "requires": {
+        "async": "~0.1.22",
+        "coffee-script": "~1.3.3",
+        "colors": "~0.6.2",
+        "dateformat": "1.0.2-1.2.3",
+        "eventemitter2": "~0.4.13",
+        "exit": "~0.1.1",
+        "findup-sync": "~0.1.2",
+        "getobject": "~0.1.0",
+        "glob": "~3.1.21",
+        "grunt-legacy-log": "~0.1.0",
+        "grunt-legacy-util": "~0.2.0",
+        "hooker": "~0.2.3",
+        "iconv-lite": "~0.2.11",
+        "js-yaml": "~2.0.5",
+        "lodash": "~0.9.2",
+        "minimatch": "~0.2.12",
+        "nopt": "~1.0.10",
+        "rimraf": "~2.2.8",
+        "underscore.string": "~2.2.1",
+        "which": "~1.0.5"
+      }
+    },
+    "grunt-legacy-log": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+      "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
+      "dev": true,
+      "requires": {
+        "colors": "~0.6.2",
+        "grunt-legacy-log-utils": "~0.1.1",
+        "hooker": "~0.2.3",
+        "lodash": "~2.4.1",
+        "underscore.string": "~2.3.3"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+          "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-legacy-log-utils": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+      "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
+      "dev": true,
+      "requires": {
+        "colors": "~0.6.2",
+        "lodash": "~2.4.1",
+        "underscore.string": "~2.3.3"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+          "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-legacy-util": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+      "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+      "dev": true,
+      "requires": {
+        "async": "~0.1.22",
+        "exit": "~0.1.1",
+        "getobject": "~0.1.0",
+        "hooker": "~0.2.3",
+        "lodash": "~0.9.2",
+        "underscore.string": "~2.2.1",
+        "which": "~1.0.5"
+      }
+    },
+    "grunt-wp-i18n": {
+      "version": "0.5.4",
+      "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-0.5.4.tgz",
+      "integrity": "sha1-hynlrU9LIxJpch8xcWVNLGKVVJI=",
+      "dev": true,
+      "requires": {
+        "async": "~0.9.0",
+        "gettext-parser": "~1.1.0",
+        "grunt": "~0.4.5",
+        "underscore": "~1.8.2",
+        "underscore.string": "~3.0.3"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.9.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+          "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+          "dev": true
+        },
+        "underscore": {
+          "version": "1.8.3",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+          "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz",
+          "integrity": "sha1-Rhe4waJQz25QZPu7Nj0PqWzxRVI=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-wp-readme-to-markdown": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/grunt-wp-readme-to-markdown/-/grunt-wp-readme-to-markdown-1.0.0.tgz",
+      "integrity": "sha1-dJ/9gDtYTVC9ZOc6ehqRhz6djPs=",
+      "dev": true
+    },
+    "hooker": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+      "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+      "dev": true
+    },
+    "iconv-lite": {
+      "version": "0.2.11",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+      "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+      "dev": true
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+      "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+      "dev": true,
+      "requires": {
+        "argparse": "~ 0.1.11",
+        "esprima": "~ 1.0.2"
+      }
+    },
+    "lodash": {
+      "version": "0.9.2",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+      "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "2.7.3",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "0.2.14",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+      "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+      "dev": true,
+      "requires": {
+        "lru-cache": "2",
+        "sigmund": "~1.0.0"
+      }
+    },
+    "nopt": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+      "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "rimraf": {
+      "version": "2.2.8",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+      "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+      "dev": true
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true
+    },
+    "sigmund": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+      "dev": true
+    },
+    "underscore": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+      "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+      "dev": true
+    },
+    "underscore.string": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+      "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+      "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+      "dev": true
+    }
+  }
+}
diff --git a/readme.txt b/readme.txt
index 402e5416c93ba92317927f1aecc8a7f32b992804..42399c1ccc2045046bffda9a19392f3bf9cef643 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,8 +3,8 @@ Contributors: ethitter, thinkoomph
 Donate link: http://www.thinkoomph.com/plugins-modules/view-all-posts-pages/
 Tags: view all, pages, paged, paged post, multipage, single view, single page, wp_link_pages, nextpage, next page, quicktag
 Requires at least: 3.2.1
-Tested up to: 5.0
-Stable tag: 0.9.1
+Tested up to: 5.3
+Stable tag: 0.9.3
 License: GPLv2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 
@@ -45,7 +45,11 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 
 == Changelog ==
 
+= 0.9.3 =
+* Compatible with WordPress 5.2
+
 = 0.9.2 =
+* Compatible with PHP 7.3
 * Introduce PHPCS tests
 * Update plugin based on PHPCS results
 
@@ -61,7 +65,7 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 = 0.8 =
 * When WordPress determines a request is a 404, don't activate the plugin's functionality.
 * Convert the plugin to a singleton.
-* Audit entire plugin for translation readyness.
+* Audit entire plugin for translation readiness.
 * Correct phpdoc.
 
 = 0.7 =
@@ -99,6 +103,9 @@ This plugin is known to conflict with certain plugins, many pertaining to SEO an
 
 == Upgrade Notice ==
 
+= 0.9.3 =
+Ensures compatibility with WordPress 5.2.
+
 = 0.9.2 =
 Adds support for PHP 7.3 and fixes various PHPCS errors, neither of which should impact the plugin's functionality.
 
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 7dc0c88ef7d679634cf3e4481b57c922c982fe77..89f2bd99fe311f628263bbecc9eb6bfa51cd9916 100755
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -23,7 +23,7 @@ require_once $_tests_dir . '/includes/functions.php';
  * Manually load the plugin being tested.
  */
 function _manually_load_plugin() {
-	require dirname( dirname( __FILE__ ) ) . '/view-all-posts-pages.php';
+	require dirname( __FILE__, 2 ) . '/view-all-posts-pages.php';
 }
 tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
 
diff --git a/tests/test-post-filters.php b/tests/test-post-filters.php
new file mode 100755
index 0000000000000000000000000000000000000000..46195019730a71f865403114b3e4f26d8ab15aae
--- /dev/null
+++ b/tests/test-post-filters.php
@@ -0,0 +1,135 @@
+<?php
+/**
+ * Class PostFilters
+ *
+ * @package View_All_Posts_Pages
+ */
+
+/**
+ * Content-filter test case.
+ */
+class PostFilters extends WP_UnitTestCase {
+	/**
+	 * Text for each page of multipage post.
+	 *
+	 * @var array
+	 */
+	protected static $pages_content = [
+		1 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at neque sit amet massa pulvinar ullamcorper. Sed cursus, quam a tristique volutpat, diam justo cursus nunc, eu elementum sem orci ut ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras aliquet, diam sit amet tincidunt pulvinar, tortor neque accumsan dui, efficitur placerat justo nisl et justo. Pellentesque convallis dui nulla, vel finibus dui cursus quis. Sed semper nunc et euismod tristique. Aliquam tincidunt eget massa ac congue. Ut ipsum eros, dignissim ut eleifend eu, consectetur a eros. Proin in mattis dui.',
+		2 => 'Sed sed sapien et lectus aliquam tempor. Duis consequat sapien scelerisque metus pulvinar aliquam. Pellentesque vestibulum id justo vel egestas. Nullam a metus sed risus blandit egestas. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed scelerisque ipsum ante, quis iaculis nibh suscipit eget. Nulla facilisi. Nulla at lacus at mauris sodales varius et nec massa. Etiam in nisi commodo, semper velit vitae, condimentum nisl. Ut quis mauris non ipsum feugiat vehicula pulvinar vitae dui. Nulla facilisi.',
+		3 => 'Donec condimentum ipsum felis. Vivamus rhoncus mauris ac commodo hendrerit. Quisque ultrices nibh laoreet purus volutpat, ut congue purus suscipit. Sed eget lacus nec eros scelerisque volutpat. Fusce tristique quam eu risus porta, id vulputate dui maximus. Phasellus suscipit faucibus leo, imperdiet facilisis nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sit amet velit eu felis rhoncus placerat vel rutrum ante. Donec luctus urna quis nulla porta vestibulum. Vivamus ac lacinia odio.',
+	];
+
+	/**
+	 * Page break trigger.
+	 *
+	 * @var string
+	 */
+	protected static $page_break = "<!--nextpage-->";
+
+	/**
+	 * Test post ID.
+	 *
+	 * @var int
+	 */
+	protected static $post_id;
+
+	/**
+	 * Prepare data for tests.
+	 */
+	public function setUp(): void {
+		parent::setUp();
+
+		static::$post_id = $this->factory->post->create(
+			[
+				'post_title'   => 'Pagination Test',
+				'post_status'  => 'publish',
+				'post_date'    => '2019-01-01 00:01:01',
+				'post_content' => implode( static::$page_break, static::$pages_content ),
+			]
+		);
+	}
+
+	/**
+	 * Test retrieving page 1 content.
+	 */
+	public function test_view_page_1(): void {
+		query_posts(
+			[
+				'p' => static::$post_id,
+			]
+		);
+
+		$this->assertTrue( have_posts() );
+
+		while ( have_posts() ) {
+			the_post();
+
+			$this->assertEquals( static::$pages_content[1], get_the_content() );
+		}
+	}
+
+	/**
+	 * Test retrieving page 2 content.
+	 */
+	public function test_view_page_2(): void {
+		query_posts(
+			[
+				'p'    => static::$post_id,
+				'page' => 2,
+			]
+		);
+
+		$this->assertTrue( have_posts() );
+
+		while ( have_posts() ) {
+			the_post();
+
+			$this->assertEquals( static::$pages_content[2], get_the_content() );
+		}
+	}
+
+	/**
+	 * Test retrieving page 3 content.
+	 */
+	public function test_view_page_3(): void {
+		query_posts(
+			[
+				'p'    => static::$post_id,
+				'page' => 3,
+			]
+		);
+
+		$this->assertTrue( have_posts() );
+
+		while ( have_posts() ) {
+			the_post();
+
+			$this->assertEquals( static::$pages_content[3], get_the_content() );
+		}
+	}
+
+	/**
+	 * Test retrieving "view all" contents.
+	 */
+	public function test_view_all(): void {
+		query_posts(
+			[
+				'p'        => static::$post_id,
+				'view-all' => true,
+			]
+		);
+
+		$this->assertTrue( have_posts() );
+
+		while ( have_posts() ) {
+			the_post();
+
+			$content = get_the_content();
+
+			foreach ( static::$pages_content as $page => $text ) {
+				$this->assertContains( $text, $content, "Failed to assert that content contained page {$page}." );
+			}
+		}
+	}
+}
diff --git a/tests/test-sample.php b/tests/test-sample.php
deleted file mode 100755
index 0c4fb886fd0df0d09250e5cc869c188ceab6c7be..0000000000000000000000000000000000000000
--- a/tests/test-sample.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Class SampleTest
- *
- * @package View_All_Posts_Pages
- */
-
-/**
- * Sample test case.
- */
-class SampleTest extends WP_UnitTestCase {
-
-	/**
-	 * A single example test.
-	 */
-	public function test_sample() {
-		// Replace this with some actual testing code.
-		$this->assertTrue( true );
-	}
-}
diff --git a/view-all-posts-pages.php b/view-all-posts-pages.php
index 95e06dfe48b70ce659f8b5e15cd0ed08ffcd6b9d..e7386e2bf4cee1cea7ca376f8f4d69486b8992ec 100755
--- a/view-all-posts-pages.php
+++ b/view-all-posts-pages.php
@@ -9,7 +9,7 @@
  * Author URI:      http://www.oomphinc.com/
  * Text Domain:     view_all_posts_pages
  * Domain Path:     /languages
- * Version:         0.9.2
+ * Version:         0.9.3
  *
  * @package         View_All_Posts_Pages
  *
@@ -270,10 +270,12 @@ class view_all_posts_pages { // phpcs:ignore PEAR.NamingConventions.ValidClassNa
 			$post->post_content = str_replace( "<!--nextpage-->\n", "\n", $post->post_content );
 			$post->post_content = str_replace( '<!--nextpage-->', ' ', $post->post_content );
 
-			$pages = array( $post->post_content ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
+			// phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
+			$pages = array( $post->post_content );
 
-			$more      = 1; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
-			$multipage = 0; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
+			$more      = 1;
+			$multipage = 0;
+			// phpcs:enable WordPress.WP.GlobalVariablesOverride.Prohibited
 		}
 	}
 
@@ -320,7 +322,8 @@ class view_all_posts_pages { // phpcs:ignore PEAR.NamingConventions.ValidClassNa
 
 			// Set global $more to false so that wp_link_pages outputs links for all pages when viewing full post page.
 			if ( $this->is_view_all() ) {
-				$GLOBALS['more'] = false; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
+				// phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+				$GLOBALS['more'] = false;
 			}
 
 			// Process link text, respecting pagelink parameter.
@@ -754,7 +757,7 @@ class view_all_posts_pages { // phpcs:ignore PEAR.NamingConventions.ValidClassNa
 
 					/* translators: 1: URL to dismiss admin notice. */
 					printf( wp_kses_post( __( 'When finished, click <a href="%s">here</a> to hide this message.', 'view_all_posts_pages' ) ), esc_url( admin_url( add_query_arg( $query_args, 'index.php' ) ) ) );
-				?>
+					?>
 			</p>
 		</div>
 
@@ -762,7 +765,6 @@ class view_all_posts_pages { // phpcs:ignore PEAR.NamingConventions.ValidClassNa
 		endif;
 	}
 }
-view_all_posts_pages::get_instance();
 
 /**
  * Alias global variable used to hold instantiated plugin prior to singleton's introduction in version 0.7.