**Dies ist eine alte Version des Dokuments!** ----
====== Q and A and Knowledge Base for WordPress ====== related plugin: [[http://wordpress.org/plugins/q-and-a/|Q and A and Knowledge Base for WordPress]]\\ related problem: Xtreme-one Forum:[[http://marketpress.de/support/topic/template-custom-post-type/|Template Custom Post Type]] Das plugin verwendet für die Stadardausgabe als Template die page.php oder single.php oder index.php des Themes. ChildThemes werden nicht berücksichtigt. Man hat aber die Möglichkeit, ein eigenes template zu erstellen. Das muß dann im Ordner des verwendeten Themes erstellt werden (''single-qa_faqs.php''). Im Fall von xtreme-one wäre das im xtreme-one Ordner des frameworks. Hier zeige ich nun verschiedene Möglichkeiten auf, um ein eigenes Template für xtreme-one und oder das ChildTheme zu erstellen. Als Basis dient uns dazu die single.php. ===== Möglichkeit 1: Template im Theme ===== 1.1. Anlegen einer Datei im Ordner xtreme-one/single-qa_faqs.php auf Basis der single.php single-qa_faqs.php <code phpwp> <?php /* * Xtreme Name: Single QA Faqs */ get_header(); $docmode = ''; if ( xtreme_is_html5() ) { $docmode = 'html5'; } get_template_part( $docmode . 'loop', 'single-qafaqs' ); get_footer(); </code> 1.2. Erstellen der html5loop-single-qafaqs.php <code phpwp> <?php if ( have_posts() ) : do_action('xtreme_before_loop'); while ( have_posts() ) : the_post(); do_action('xtreme_before_single_post'); get_template_part('includes/posttemplates/html5-content', 'single-qafaqs'); do_action('xtreme_after_single_post'); comments_template( '', true ); do_action('xtreme_after_comments_template'); endwhile; do_action('xtreme_after_loop'); endif; </code> 1.3. Anlegen einer xtreme-one/includes/posttemplates/html5-content-single-qafaqs.php <code phpwp> <article class="<?php xtreme_post_class() ?>" id="post-<?php the_ID() ?>"> <header> <?php if ( current_theme_supports('xtreme-subtitles') ) : ?> <hgroup> <?php endif; ?> <?php xtreme_post_headline( 'h1', true ) ?> <?php if ( current_theme_supports('xtreme-subtitles') ) : ?> <?php xtreme_post_subtitle('h3') ?> </hgroup> <?php endif; ?> <?php xtreme_html5_byline(); ?> </header> <div class="entry-content"> <?php the_content() ?> <?php wp_link_pages( array( 'before' => '<nav><strong>' . __( 'Pages:', XF_TEXTDOMAIN ) . '</strong> ', 'after' => '</nav>', 'next_or_number' => 'number' ) ) ?> <?php edit_post_link( __( 'Edit', XF_TEXTDOMAIN ), '<div class="postedit">', '</div>' ) ?> </div> <?php do_action( 'xtreme_single_footer' ) ?> </article> </code> Hier gilt es noch zu erwähnen, das die Ausgabe der ''<hgroup>'' für html5 vermutlich nicht in die Spezifikationen mit aufgenommen wird, man könnte diese also auch schon weglassen, also dann in etwa so: <code phpwp> <article class="<?php xtreme_post_class() ?>" id="post-<?php the_ID() ?>"> <header> <?php xtreme_post_headline( 'h1', true ) ?> <?php xtreme_post_subtitle('h3') ?> <?php xtreme_html5_byline(); ?> </header> <div class="entry-content"> <?php the_content() ?> <?php wp_link_pages( array( 'before' => '<nav><strong>' . __( 'Pages:', XF_TEXTDOMAIN ) . '</strong> ', 'after' => '</nav>', 'next_or_number' => 'number' ) ) ?> <?php edit_post_link( __( 'Edit', XF_TEXTDOMAIN ), '<div class="postedit">', '</div>' ) ?> </div> <?php do_action( 'xtreme_single_footer' ) ?> </article> </code> ===== Möglichkeit 2: Template im ChildTheme ===== Um das Ganze sicher vor xtreme-one updates zu halten, kannst du die drei oben beschriebenen Dateien auch in die entsprechenden Ordner im ChildTheme ablegen und zusätzlich folgende hooks und Funktion in deiner functions.php des ChildThemes hinterlegen: <code phpwp> remove_action("template_redirect", 'qaplus_template_redirect'); function my_qaplus_template_redirect() { global $wp; global $wp_query; global $post; if ( is_single() && 'qa_faqs' == get_post_type($post) ) { if ( file_exists( XF_CHILD_THEME_DIR . '/single-qa_faqs.php') ) { $page_template = XF_CHILD_THEME_DIR . '/single-qa_faqs.php'; } } if ( isset( $page_template ) ) { if ( have_posts() ) { include( $page_template ); exit; } else { $wp_query->is_404 = true; } } } add_action("template_redirect", 'my_qaplus_template_redirect'); </code> ===== Möglichkeit 3: Verwenden des Standard Templates single.php ===== Um einfach das Template der single.php zu verwenden, wird folgender hook in die functions.php des Themes , bzw. ChildThemes kopiert. Damit greift dann wieder die Template Hirachie von WordPress und es wird die entsprechende single.php verwendet. <code phpwp> remove_action( 'template_redirect', 'qaplus_template_redirect' ); </code>