最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

template include - Why isn't template_include working with AMP correctly?

matteradmin10PV0评论

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 :)

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 :)

Share Improve this question edited Oct 20, 2018 at 12:26 M0n5terBunny asked Oct 19, 2018 at 12:43 M0n5terBunnyM0n5terBunny 274 bronze badges 2
  • 1 What’s the problem exactly? You mention 404, templates have nothing to do with 404 errors. – Milo Commented Oct 19, 2018 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/ – M0n5terBunny Commented Oct 19, 2018 at 16:33
Add a comment  | 

1 Answer 1

Reset to default 0

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.

Post a comment

comment list (0)

  1. No comments so far