Before you ask I have looked around the similar questions to find a resolution but I couldn't find one that worked.

  • Ive tried the permalink option several times,
  • There is nothing in my htaccess file that would be causing the 404
  • There's no caching software installed
  • There are no other plugins that im using for redirection or amp
  • The is_single() works perfectly fine but the is_page() does not, i've also tried is_front_page(), is_category(), is_home(), is_page('specific page') but again dont seem to work.
  • body_class() is included in the body tag.

So I'm really not sure why it isnt working, see code.

define( 'AMP_QUERY_VAR', apply_filters( 'amp_query_var', 'amp' ) );
add_rewrite_endpoint( AMP_QUERY_VAR, EP_PERMALINK );
add_filter( 'template_include', 'amp_page_template', 99 );
function amp_page_template( $template ) {

if( get_query_var( AMP_QUERY_VAR, false ) !== false ) {

    if ( is_single() ) {

        $template = get_template_directory() .  '/amp-single.php';


    if( is_page() ) {

        $template = get_template_directory() .  '/amp-page.php';



return $template;

Any answers would be greatly appreciated, cheers :)

  • 1
    What’s the problem exactly? You mention 404, templates have nothing to do with 404 errors. – Milo Oct 19 '18 at 12:50
  • Im getting a 404, it's supposed to got to the amp-page.php page template. Like the single posts do when you goto the page then put /amp/ – DonnyDev Oct 19 '18 at 16:33

Your endpoint is only applied to posts, add EP_PAGES to generate rules for page post type-

add_rewrite_endpoint( 'amp', EP_PERMALINK | EP_PAGES );

That should also be within a function hooked to init.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.