Obține URL-ul paginii de blog setat în Opțiuni

28 apr. 2012, 12:56:00
Vizualizări: 80.7K
Voturi: 54

Am setat blogul să fie o pagină diferită față de pagina principală.

Vreau să am un link din single.php către această pagină de blog.

Există vreo funcție care să extragă URL-ul pentru blog?

0
Toate răspunsurile la întrebare 5
0
94

Pentru a dezvolta răspunsul lui Sagive, va trebui să înfășurați ID-ul în get_permalink() pentru a obține link-ul real.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Blogul nostru</a>
28 apr. 2012 19:19:44
0
49

Începând cu WordPress 4.5, poți folosi:

get_post_type_archive_link( 'post' );

Această funcție se ocupă de logica de obținere a URL-ului corect, indiferent dacă postările sunt afișate pe pagina principală sau pe o pagină specificată.

3 apr. 2017 06:09:59
0

Cea mai bună metodă de a verifica opțiunea înainte de a seta permalink-ul este următoarea:

if ( get_option( 'page_for_posts' ) ) {
   // Dacă există o pagină setată pentru postări, afișează link-ul către ea
   echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
} else {
   // Dacă nu există o pagină setată pentru postări, afișează link-ul către pagina principală
   echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
}
2 mai 2016 13:51:37
0

Puteți utiliza get_option pentru page_for_posts pentru a obține ID-ul paginii, fie pentru a-l atribui unei variabile, fie pentru a-l afișa dacă doriți să faceți acest lucru.

<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Blogul nostru</a>

Pentru informații suplimentare despre funcția implicită get_option, vizitați: Referință Opțiuni

28 apr. 2012 14:46:34
1

Sunt de acord cu Hugh Man că este mai bine să verificăm opțiunea înainte de a afișa link-ul, dar este posibil să setăm o pagină statică ca pagină principală și să lăsăm pagina de articole goală. În acest caz, link-ul va trimite pur și simplu către URL-ul homepage-ului. O abordare mai bună este să oferim o rezervă către pagina de arhivă a articolelor. Ceva de genul:

function slug_all_posts_link() {
    if ( 'page' == get_option( 'show_on_front' ) ) {
        if ( get_option( 'page_for_posts' ) ) {
            echo esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
        } else {
            echo esc_url( home_url( '/?post_type=post' ) );
        }
    } else {
        echo esc_url( home_url( '/' ) );
    }
}
7 iun. 2016 12:26:05
Comentarii

Nu este nevoie să folosești esc_url pentru funcțiile get_permalink și home_url

Anatol Bivol Anatol Bivol
7 apr. 2017 10:48:04