By default, the WordPress REST API doesn’t pass along authentication data.

If your FacetWP template or customization code depends on the currently logged-in user (e.g. with is_user_logged_in(), you’ll run into issues when an AJAX refresh is triggered.

Fortunately, there’s an easy workaround: add the following code to your (child) theme’s functions.php:

How to use custom PHP code?

PHP code can be added to your (child) theme's functions.php file. Alternatively, you can use the Custom Hooks add-on, or a code snippets plugin. More info

/* Please note that caching may interfere with the NONCE, causing ajax requests to fail. Please DISABLE CACHING for facet pages, or set the cache expiration to < 12 hours! */ add_action( 'wp_footer', function() { ?> <script> document.addEventListener('facetwp-loaded', function() { if (! FWP.loaded) { // initial pageload FWP.hooks.addFilter('facetwp/ajax_settings', function(settings) { settings.headers = { 'X-WP-Nonce': FWP_JSON.nonce }; return settings; }); } }); </script> <?php }, 100 );

See also