If you are using an AMP-compatible theme and using the AMP plugin for AMP implementation, then sometimes you may need to check if the current page is an AMP page request or a normal page request.
AMP plugin has a built-in function that you can use to do just that. Its amp_is_request()
. This function allows you to check whether the current page is an AMP request or a normal request. I have listed a few examples below with the implementation of amp_is_rquest()
to achieve a few features.
Load a different sidebar for AMP pages
You may want to load a different sidebar specifically for AMP pages so that it will have complete AMP-compatible code. Here is an example how you can achieve that :
Create a custom function to check if the current AMP request that avoids errors when the AMP plugin is disabled. Add the following code in the functions.php file to do that.
// Add this function in functions.php file // custom function to check if amp_is_request exists so that the site doesn't throw error when AMP plugin is disabled. function wptips_is_amp() { if ( function_exists( 'amp_is_request' ) ): return amp_is_request(); else : return false; endif; }
Create a custom AMP sidebar and call the sidebar if it’s an AMP request using the newly defined custom function.
// Register custom AMP Sidebar ( add this code in functions.php file ) register_sidebar( array( 'name' => __( 'AMP Sidebar', 'wptips' ), 'id' => 'amp-sidebar', 'description' => __( 'Add widgets here to appear in AMP site sidebar.', 'wptips' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<div class="widget-title">', 'after_title' => '</div>', ) ); // Add this code in your sidebar.php or any other sidebar file where you want to implement custom sidebar for AMP version of the site. if ( wpb_is_amp() ): dynamic_sidebar( 'amp-sidebar' ); else: dynamic_sidebar( 'main-sidebar' ); endif;
Note: The function
is_amp_endpoint()
is deprecated, and you should switch toamp_is_rquest()
if you are using the latest version of the AMP plugin.
Feel free to share your question or any issue that you need help with related AMP implementation in your webstie.
It doesn’t work if you just put the function into the functions.php file and it always returns false in this case.
As docs say:
“This function cannot be called before the parse_query action because it needs to be able to determine the queried object is able to be served as AMP” (https://amp-wp.org/reference/function/amp_is_request/)
Thank you for reminding me that. I will modify the article accordingly.