Obține URL-ul paginii de blog setat în Opțiuni
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?

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

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

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