Hi Forum,
auf meinem Trainingsblog (http://dev.npire.de) ist unter News eine Pagination eingerichtet, die seit kurzem nicht mehr richtig funktioniert. Wenn man dort auf die 2. Seite klickt kommt: Das ist irgendwie peinlich... Ich glaube das liegt an den wp_rewrite-regeln, die ich zusätzlich und laut diesem Blog angewendet habe.
Leider weiß ich nicht, wie ich das reparieren kann und bin infolgedessen ziemlich ratlos.
Meine functions.php sieht so aus:
PHP
<?php//custom post type mitarbeiter erzeugen
add_action( 'init', 'register_cpt_mitarbeiter' );
function register_cpt_mitarbeiter() {
$labels = array( 'name' => _x( 'Alle Mitarbeiter', 'mitarbeiter' ), 'singular_name' => _x( 'Mitarbeiter', 'mitarbeiter' ), 'add_new' => _x( 'Hinzufügen', 'mitarbeiter' ), 'add_new_item' => _x( 'Mitarbeiter hinzufügen', 'mitarbeiter' ), 'edit_item' => _x( 'Mitarbeiter bearbeiten', 'mitarbeiter' ), 'new_item' => _x( 'Neuer Mitarbeiter', 'mitarbeiter' ), 'view_item' => _x( 'Mitarbeiter ansehen', 'mitarbeiter' ), 'search_items' => _x( 'Mitarbeiter suchen', 'mitarbeiter' ), 'not_found' => _x( 'Mitarbeiter nicht gefunden', 'mitarbeiter' ), 'not_found_in_trash' => _x( 'Kein Mitarbeiter im Papierkorb gefunden', 'mitarbeiter' ), 'parent_item_colon' => _x( 'Vorgesetzter', 'mitarbeiter' ), 'menu_name' => _x( 'Mitarbeiter', 'mitarbeiter' ), 'all_items' => _x( 'Alle Mitarbeiter', 'mitarbeiter' ) );
$args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'Mitarbeiter der Zarthen Seite', 'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' ), 'taxonomies' => array( 'category', 'post_tag', 'page-category' ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => false, 'capability_type' => 'post' );
register_post_type( 'mitarbeiter', $args );}
//custom post type news erzeugen
add_action( 'init', 'register_cpt_news' );
function register_cpt_news() {
$labels = array( 'name' => _x( 'Alle Nachrichten', 'news' ), 'singular_name' => _x( 'Nachricht', 'news' ), 'add_new' => _x( 'Hinzufügen', 'news' ), 'add_new_item' => _x( 'Nachricht hinzufügen', 'news' ), 'edit_item' => _x( 'Nachricht bearbeiten', 'news' ), 'new_item' => _x( 'Neue Nachricht', 'news' ), 'view_item' => _x( 'Nachricht ansehen', 'news' ), 'search_items' => _x( 'Nachricht suchen', 'news' ), 'not_found' => _x( 'Nachricht nicht gefunden', 'news' ), 'not_found_in_trash' => _x( 'Keine Nachricht im Papierkorb gefunden', 'news' ), 'menu_name' => _x( 'Nachrichten', 'news' ), 'all_items' => _x( 'Alle Nachrichten', 'news' ) );
$args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'News auf der Zarthen Seite', 'supports' => array( 'custom-fields', 'title', 'editor', 'excerpt', 'thumbnail' ), 'taxonomies' => array( 'category', 'post_tag', 'page-category' ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => false, 'capability_type' => 'post' );
register_post_type( 'news', $args );}
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) );
if ( ! function_exists( 'twentytwelve_content_nav' ) ) :/** * Displays navigation to next/previous pages when applicable. * * @since Twenty Twelve 1.0 */function twentytwelve_content_nav( $html_id ) { global $wp_query;
$html_id = esc_attr( $html_id ); ?> <nav id="<?php echo $html_id; ?>" class="navigation" role="navigation"> <?php echo pagination(); ?> </nav><!-- #<?php echo $html_id; ?> .navigation --> <?php}endif;
function pagination($range = 3, $show_one_pager = true, $show_page_hint = true){ global $wp_query; $num_of_pages = (int)$wp_query->max_num_pages;
if((!is_single() || is_page_template('news.php')) && $num_of_pages > 1) { $current_page = (get_query_var('paged') === 0 ? 1 : get_query_var('paged')); $num_of_display_pages = ($range * 2) + 1; $output = '<div class="pagination">'; if($show_page_hint) { $output .= '<span class="pageCounter">Seite ' . $current_page . ' von ' . $num_of_pages . '</span>'; } if($current_page > 2 && $current_page > $range + 1 && $num_of_display_pages < $num_of_pages) { $output .= '<a class="pointer" href="' . get_pagenum_link(1) . '" title="Seite 1 - Neueste Artikel">«</a>'; } if($show_one_pager && $current_page > 1) { $output .= '<a class="pointer" href="' . get_pagenum_link($current_page - 1) . '" title="Seite ' . ($current_page - 1) . ' - Neuere Artikel">‹</a>'; } for($i = 1; $i <= $num_of_pages; $i++) { if($i < $current_page + $range + 1 && $i > $current_page - $range - 1) { if($current_page === $i) { $output .= '<span class="current">' . $i . '</span>'; } else { $output .= '<a class="followingPages" href="' . get_pagenum_link($i) . '" title="Seite ' . $i . '" >' . $i . '</a>'; } } } if($show_one_pager && $current_page < $num_of_pages) { $output .= '<a class="pointer" href="' . get_pagenum_link($current_page + 1) . '" title="Seite ' . ($current_page + 1) . ' - Ältere Artikel">›</a>'; } if($current_page < $num_of_pages - 1 && $current_page + $range < $num_of_pages && $num_of_display_pages < $num_of_pages) { $output .= '<a class="pointer" href="' . get_pagenum_link($num_of_pages) . '" title="Seite ' . $num_of_pages . ' - Älteste Artikel">»</a>'; }
$output .= '</div>';
return $output; }}
$mitarbeiter_structure = '/mitarbeiter/%mitarbeiter%';$wp_rewrite->add_rewrite_tag("%mitarbeiter%", '([^/]+)', "mitarbeiter=");$wp_rewrite->add_permastruct('mitarbeiter', $mitarbeiter_structure, true);add_rewrite_rule('mitarbeiter/page/([0-9]*)/?', 'index.php?page_id=PAGE_ID&paged=$matches[1]', 'top');
$news_structure = '/news/%news%';$wp_rewrite->add_rewrite_tag("%news%", '([^/]+)', "news=");$wp_rewrite->add_permastruct('news', $news_structure, true);add_rewrite_rule('news/page/([0-9]*)/?', 'index.php?page_id=PAGE_ID&paged=$matches[1]', 'top');
?>
Alles anzeigen
meine news.php so:
PHP
<?php/*Template Name: News*/get_header();?>
<div class="news"> <h2>News</h2> <?php $wp_query = new WP_Query( array( 'post_type' => 'news', 'paged' => $paged ) ); ?> <?php if ($wp_query->have_posts()) : ?> <div class="news-box"> <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <?php global $more; $more = 0; ?> <div id="post-<?php the_ID(); ?>" class="news-thumbnail"> <a href="<?php the_permalink(); ?>"><?php if(has_post_thumbnail()){ the_post_thumbnail('thumbnail'); } ?> <div class="title"><?php the_title(); ?></div></a> <div class="content"><?php the_content('weiterlesen'); ?></div> </div> <?php endwhile; ?> </div> <?php endif; ?> <?php twentytwelve_content_nav( 'nav-below' ); ?></div>
<?php get_sidebar(); ?><?php get_footer(); ?>
Was muss ich ändern damit es wieder funktioniert?