Pobierz adres URL strony bloga w Opcjach


Odpowiedzi:


70

Aby skorzystać z odpowiedzi Sagive, musisz owinąć identyfikator w get_permalink (), aby uzyskać rzeczywisty link.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>

25

Począwszy od WordPress 4.5 możesz używać:

get_post_type_archive_link( 'post' );

To obsługuje logikę uzyskania poprawnego adresu URL niezależnie od tego, czy posty pojawiają się na stronie głównej, czy na określonej stronie.


4

Najlepszym sposobem na sprawdzenie opcji przed ustawieniem bezpośredniego połączenia jest:

if ( get_option( 'page_for_posts' ) ) {
   echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
} else {
   echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
}

3

Możesz użyć get_optionz, page_for_postsaby uzyskać identyfikator strony, aby przypisać go do zmiennej lub wywołać echo, jeśli chcesz to zrobić.

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

Aby uzyskać dodatkowe informacje na temat wadliwej wizyty get_option: odniesienie do opcji


1

Zgadzam się z Hugh Manem, że lepiej sprawdzić opcję przed wyświetleniem echa linku, ale możliwe jest ustawienie strony statycznej jako strony początkowej i pozostawienie pustej strony postów. W takim przypadku link będzie po prostu wskazywał domowy adres URL. Lepszym rozwiązaniem jest powrót do strony archiwum postów. Coś takiego:

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

Nie trzeba do esc_urltych get_permalinki home_urlfunkcji
Tolea Bivol
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.