Как я могу ссылаться на блог, который не указан в качестве главной страницы?

У меня есть блог здесь /www.mysite.com/section/news/, который показывает только новости в определенной категории. Когда я использую wp_get_recent_posts () и get_permalink ($ recent ["ID"]), ссылка идет здесь /www.mysite.com/the-post-title/

<?php $args = array( 'numberposts' => 2, 'category' => 14 ); $recent_posts = wp_get_recent_posts($args); foreach( $recent_posts as $recent ){ echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . $recent["post_title"].'</a> </li> '; } ?> 

Как я могу ссылаться на /www.mysite.com/section/news/the-post-title/

спасибо, любая помощь очень ценится.

С Уважением,

Solutions Collecting From Web of "Как я могу ссылаться на блог, который не указан в качестве главной страницы?"

Постоянная ссылка по умолчанию выводится по отношению к индексу сообщений блога сайта (aka 'page-for-posts' , aka posts page ). Вы используете настраиваемый шаблон страницы для статической страницы Section/News . Эта статическая страница не связана с индексом сообщений блога сайта. Вот почему константные ссылки не ссылаются на эту страницу.

Если вы хотите, чтобы ваши постоянные ссылки ссылались на вашу статическую страницу Section/News , вам необходимо назначить эту статическую страницу в качестве страницы своих сообщений в Dashboard -> Settings -> Reading .

Если вы хотите показывать только сообщения для определенной категории в своем блоге, вы можете сделать это через фильтр запросов, подключенный к pre_get_posts ; например:

 function wpse76370_filter_pre_get_posts( $query ) { if ( ! is_admin() && is_home() && $query->is_main_query() ) { // This is the main loop query for the blog posts index; // Only display a specific category $query->set( 'cat', '14' ); } } add_action( 'pre_get_posts', 'wpse76370_filter_pre_get_posts' ); 

Эти функции будут возвращать URL-адреса на основе ваших параметров постоянной ссылки. Если единственным местом, которое вы хотите изменить, является код, который вы отправили, просто создайте URL-адрес вручную.

 <?php $args = array( 'numberposts' => 2, 'category' => 14 ); $recent_posts = wp_get_recent_posts($args); $base_page = get_permalink(<id-of-news-subpage>); foreach( $recent_posts as $recent ){ echo '<li><a href="' . $base_page . $recent['post_name'] . '" title="Look '.esc_attr($recent["post_title"]).'" >' . $recent["post_title"].'</a> </li> '; } ?> 

post_name – это сообщение, которое WordPress использует для создания URL-адресов, поэтому он должен быть довольно безопасным способом создания URL-адреса.