kul86
Ответы в темах
-
Форум: Проблемы и решения
Тема: Страницы пагинацийСергей, по поводу цели, возможно это мои заморочки, но
1) Если оставить URL /page/2/, то получается по структуре, что имеется лишний уровень вложенности или страница /page/ должна открываться и что то выдавать в итоге. С точки зрения SEO какая то корявая структура получается;
2) URL в таком виде просто не нравится;
3) Чисто спортивный интерес уже, в том можно ли сменить или нет.По Вашему коду из темы по ссылке, всё работает, но URL преобразуются в вид
/page2/
/page3/Опять же из-за «красоты» хочется
/page-2/
/page-3/Понимаю, где заменить «page» на «page-» в коде (3 строка):
function my_paged_links($string, $type_of_url) { if ( $type_of_url == 'paged') { $string = str_replace('page/', 'page-', $string); } return $string; } add_filter('user_trailingslashit', 'my_paged_links', 10, 2); function my_pagenum_link($link) { if ( $_SERVER['REQUEST_URI'] != '/' ) { preg_match('/\/page[0-9]+/', $_SERVER['REQUEST_URI'], $matches); if ( !empty($matches) ) { $link = str_replace($matches[0], '', $link); } } return $link; } add_filter('get_pagenum_link', 'my_pagenum_link');
Тогда ссылки в пагинации преобразуются в правильные:
/page-2/
/page-3/
Но сами страницы остаются с урлами:
/page2/
/page3/Можно конечно в .htaccess добавить редиректы, но, я так понимаю, и сам код можно как то поправить, чтобы урлы страниц преобразовались, но не могу понять, что именно поправить… Не подскажите? Спасибо!!!
Форум: Проблемы и решения
Тема: Страницы пагинацийНе работает, поменял, но вообще ничего не изменилось.
Если смотреть код, то подключается именно функция wp_pagenavi
Но ее нигде не могу найти, в поисковиках выдается, что это типа плагин, но плагинов пагинации я не ставил.Форум: Проблемы и решения
Тема: Проблема с Пагинацией — плагин Yoastв function.php нужно добавить код и тогда каноникл будет на основную страницу:
function return_canon () { $canon_page = get_pagenum_link(1); return $canon_page; } function canon_paged() { if (is_paged()) { add_filter( 'wpseo_canonical', 'return_canon' ); } } add_filter('wpseo_head','canon_paged');
Код работает только при включенном плагине WordPress Seo by Yoast.
Форум: Плагины
Тема: canonical YOASTСогласен каноникл не правильно прописан, может кому то нужно плодить такие страницы, но в большинстве случаев это дубли, поэтому в function.php нужно добавить код и тогда каноникл будет на основную страницу :
function return_canon () { $canon_page = get_pagenum_link(1); return $canon_page; } function canon_paged() { if (is_paged()) { add_filter( 'wpseo_canonical', 'return_canon' ); } } add_filter('wpseo_head','canon_paged');
Код работает только при включенном плагине WordPress Seo by Yoast.
Форум: Проблемы и решения
Тема: Страницы пагинацийНе вижу в ней аргумента «format» и не могу понять, как поправить формирование урлов у данных страниц.
Форум: Проблемы и решения
Тема: Страницы пагинацийДобрый день, спасибо, что откликнулись, функция описана стандартно:
function wp_link_pages( $args = '' ) { global $page, $numpages, $multipage, $more; $defaults = array( 'before' => '<p>' . __( 'Pages:' ), 'after' => '</p>', 'link_before' => '', 'link_after' => '', 'next_or_number' => 'number', 'separator' => ' ', 'nextpagelink' => __( 'Next page' ), 'previouspagelink' => __( 'Previous page' ), 'pagelink' => '%', 'echo' => 1 ); $params = wp_parse_args( $args, $defaults ); /** * Filters the arguments used in retrieving page links for paginated posts. * * @since 3.0.0 * * @param array $params An array of arguments for page links for paginated posts. */ $r = apply_filters( 'wp_link_pages_args', $params ); $output = ''; if ( $multipage ) { if ( 'number' == $r['next_or_number'] ) { $output .= $r['before']; for ( $i = 1; $i <= $numpages; $i++ ) { $link = $r['link_before'] . str_replace( '%', $i, $r['pagelink'] ) . $r['link_after']; if ( $i != $page || ! $more && 1 == $page ) { $link = _wp_link_page( $i ) . $link . '</a>'; } /** * Filters the HTML output of individual page number links. * * @since 3.6.0 * * @param string $link The page number HTML output. * @param int $i Page number for paginated posts' page links. */ $link = apply_filters( 'wp_link_pages_link', $link, $i ); // Use the custom links separator beginning with the second link. $output .= ( 1 === $i ) ? ' ' : $r['separator']; $output .= $link; } $output .= $r['after']; } elseif ( $more ) { $output .= $r['before']; $prev = $page - 1; if ( $prev > 0 ) { $link = _wp_link_page( $prev ) . $r['link_before'] . $r['previouspagelink'] . $r['link_after'] . '</a>'; /** This filter is documented in wp-includes/post-template.php */ $output .= apply_filters( 'wp_link_pages_link', $link, $prev ); } $next = $page + 1; if ( $next <= $numpages ) { if ( $prev ) { $output .= $r['separator']; } $link = _wp_link_page( $next ) . $r['link_before'] . $r['nextpagelink'] . $r['link_after'] . '</a>'; /** This filter is documented in wp-includes/post-template.php */ $output .= apply_filters( 'wp_link_pages_link', $link, $next ); } $output .= $r['after']; } } /** * Filters the HTML output of page links for paginated posts. * * @since 3.6.0 * * @param string $output HTML output of paginated posts' page links. * @param array $args An array of arguments. */ $html = apply_filters( 'wp_link_pages', $output, $args ); if ( $r['echo'] ) { echo $html; } return $html; } /** * Helper function for wp_link_pages(). * * @since 3.1.0 * @access private * * @global WP_Rewrite $wp_rewrite * * @param int $i Page number. * @return string Link. */ function _wp_link_page( $i ) { global $wp_rewrite; $post = get_post(); $query_args = array(); if ( 1 == $i ) { $url = get_permalink(); } else { if ( '' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending')) ) $url = add_query_arg( 'page', $i, get_permalink() ); elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID ) $url = trailingslashit(get_permalink()) . user_trailingslashit("$wp_rewrite->pagination_base/" . $i, 'single_paged'); else $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged'); } if ( is_preview() ) { if ( ( 'draft' !== $post->post_status ) && isset( $_GET['preview_id'], $_GET['preview_nonce'] ) ) { $query_args['preview_id'] = wp_unslash( $_GET['preview_id'] ); $query_args['preview_nonce'] = wp_unslash( $_GET['preview_nonce'] ); } $url = get_preview_post_link( $post, $query_args, $url ); } return '<a href="' . esc_url( $url ) . '">'; }