Articles

WordPress.org

Top

Mer information #Mer information

Sidmall i underkatalog #Sidmall i underkatalog

Om sidmallen finns i en underkatalog till temat (sedan WP 3.4), sätt mappnamnet och ett snedstreck före filnamnet på mallen, t.ex.:

is_page_template( 'templates/about.php' );

Top

Kan inte användas i slingan #Kan inte användas i slingan

På grund av att vissa globala variabler skrivs över under slingan kommer is_page_template() inte att fungera. För att kunna använda den efter The Loop måste du anropa wp_reset_query() efter The Loop.

Alternativ #Alternativ

Då sidmallens slug lagras i post_meta för alla inlägg som har tilldelats en sidmall, är det möjligt att direkt fråga post_meta för att se om en viss sida har tilldelats en sidmall. Detta är den metod som is_page_template() använder internt.

Funktionen get_page_template_slug( $post_id ) returnerar sluggen för den för närvarande tilldelade sidmallen (eller en tom sträng om ingen mall har tilldelats – eller falskt om $post_id inte motsvarar en faktisk sida). Du kan enkelt använda detta var som helst (i The Loop eller utanför) för att avgöra om en sida har tilldelats en sidmall.

 // in the loop: if ( get_page_template_slug( get_the_ID() ) ){ // Yep, this page has a page template } // anywhere: if ( get_page_template_slug( $some_post_ID ) ){ // Uh-huh. }