Domanda

Ci sono 3 autori nel nostro blog aziendale, ogni autore è proprio sito url in impostazioni del profilo :

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

i link per i profili sono:

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

Ho bisogno di sostituire un link alla pagina di amministrazione, quindi, se c'è <?php the_author_posts_link(); ?> tag su qualche pagina, e l'autore è Admin, il collegamento deve essere http://site.com/company/ invece di http://site.com/author/Admin/.

Come posso fare questo?

È stato utile?

Soluzione

Sembra che la funzione the_author_posts_link chiama solo get_author_posts_url per ottenere il link, che passa il link attraverso il filtro di author_link prima di restituirlo. In functions.php del vostro tema, si potrebbe aggiungere qualcosa di simile (non testata):

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;
}

Altri suggerimenti

Credo che il minimo bruciore di stomaco sarebbe wordpress> the_author_meta .

Avere ogni utente aggiungere il loro URL nel profilo utente wordpress, come avete fatto. Poi, nel functions.php uso del vostro tema the_author_meta('user_url'). Ricordate questo sarà eco l'url. Per usarlo come un uso variabile get_the_author_meta('user_url').

Ecco come abbiamo fatto con il tema Twenty Ten, questo è in <=>

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()
    )
);
}

Questa è la riscrittura degli URL con .htaccess, che è possibile modificando il file .htaccess a mano.

Ma più facile per un principiante con un plugin come http://wordpress.org/extend/ plugins / reindirizzamento / che sembra che farà ciò che è necessario.

È possibile farlo utilizzando riscritture http.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top