Заменить URL автора на другой (WordPress) - PullRequest
0 голосов
/ 15 мая 2009

В блоге нашей компании есть 3 автора, каждый автор имеет собственный URL сайта в настройках профиля :

Mike - http://mike.com
Gelens - http://gelens.com
Admin - http://site.com/company/

ссылки на профили:

http://site.com/author/Mike/
http://site.com/author/Gelens/
http://site.com/author/Admin/

Мне нужно заменить ссылку на страницу администратора, поэтому, если на какой-то странице есть тег <?php the_author_posts_link(); ?>, а автором является Admin, ссылка должна быть http://site.com/company/ вместо http://site.com/author/Admin/.

Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 02 января 2012

Я думаю, что меньше всего изжоги будет wordpress> the_author_meta

Пусть каждый пользователь добавит свой URL в профиль пользователя WordPress, как вы это сделали. Тогда в вашей теме functions.php используйте the_author_meta('user_url'). Помните, что это будет повторять URL. Чтобы использовать его как переменную, используйте get_the_author_meta('user_url').

Вот как мы сделали это с темой двадцать десять, это в functions.php

function twentyten_posted_on() {
printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ),
    'meta-prep meta-prep-author',
    sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>',
        get_permalink(),
        esc_attr( get_the_time() ),
        get_the_date()
    ),
    sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
        get_the_author_meta('user_url'), //changed from get_author_posts_url( get_the_author_meta( 'ID' ) ),
        sprintf( esc_attr__( 'About %s', 'twentyten' ), get_the_author() ),
        get_the_author()
    )
);
}
3 голосов
/ 24 мая 2009

Похоже, что функция the_author_posts_link просто вызывает get_author_posts_url, чтобы получить ссылку, которая пропускает ссылку через фильтр author_link перед ее возвратом. В вашей теме functions.php вы можете добавить что-то вроде этого (не проверено):

add_filter( 'author_link', 'admin_author_link', 10, 3);
function admin_author_link($link, $author_id, $author_nicename) {
    if( $author_id==1 ) {
        $link = 'http://site.com/company/';
    }
    return $link;
}
1 голос
/ 20 мая 2009

Это перезапись URL с помощью .htaccess, что возможно путем ручного редактирования .htaccess.

Но проще для новичка с плагином, таким как http://wordpress.org/extend/plugins/redirection/, который, кажется, будет делать то, что вам нужно.

0 голосов
/ 18 мая 2009

Вы можете сделать это, используя http rewrits.

...