Abrufen der Site-URL einschließlich der Front Base

Wenn meine Permalink-Struktur auf /blog/%postname%/ , wie kann ich eine URL für meine Website abrufen, die domain.com/blog/ ?

Bei der oben erwähnten Permalink-Struktur bei Verwendung von site_url(); Es wird domain.com/ wenn ich nach der URL der Website suche, einschließlich der vorderen Basis.

Vielleicht ist mir unklar, was die “Frontbasis” eigentlich ist.

Ich habe den Eindruck, dass die Front Base deine “Permalink Structure” ist. (Gespeichert in der Option permalink_structure )

Ich habe versucht, home_url(); und site_url(); … Beide Ausgabe nur domain.com/

Ich denke darüber nach, einfach site_url(); Dann die Option permalink_structure site_url(); , den Inhalt der Option selbst site_url(); und dann an site_url(); function.

 $permalink_structure = get_option('permalink_structure'); $front_base = preg_replace('#(\%)(.*)(\%/)#si', '', $permalink_structure); echo site_url($front_base, 'http').PHP_EOL; 

Gibt es eine einfachere Möglichkeit, die URL der Website einschließlich der vorderen Basis zu erhalten?

Solutions Collecting From Web of "Abrufen der Site-URL einschließlich der Front Base"

Sie können den Wert von front im globalen $wp_rewrite :

 global $wp_rewrite; echo $wp_rewrite->front; // or echo home_url( $wp_rewrite->front ); 

Dies ist jedoch wahrscheinlich von begrenztem Nutzen, da die Frontbasis nicht notwendigerweise eine existierende Seite ist und in vielen Fällen 404 sein kann. Wenn Sie diesen Wert verwenden, um anderen URLs voranzukommen, führen Sie wahrscheinlich einen Fehler aus.

Wenn Sie möchten, dass die Seite als Posts-Seite festgelegt wird, wird dieser Wert in der Option page_for_posts gespeichert:

 echo get_permalink( get_option( 'page_for_posts' ) ); 

Ich wollte etwas vorschlagen wie die function, aber lassen Sie uns ins Auge sehen. Milos Antwort ist nur ein bisschen schlauer , also nur aus Gründen der Vollständigkeit und weil ich es bereits aufgeschrieben habe.

 function wpse163163_site_url_with_fix_permalink_base() { return get_site_url() . '/' . preg_replace( '/\%([a-z0-9]+?)\%/i', '', str_replace( '/', '', get_option('permalink_structure') ) ) . '/'; } 

Du wirst einen solchen Link bekommen müssen.

 < ?php echo home_url( '/blog' ); ?> 

oder

 < ?php echo home_url( '/' ) . 'blog'; ?>