it-swarm.dev

get_permalink wykonuje link bez https

Obecnie korzystam z wersji https strony internetowej i wszystko jest w porządku, ustawiłem główny adres URL strony dla https, podczas przeglądania edytora postu jest wyświetlany https permalink. Wszystko działa dobrze na wszystkich stronach kategorii, stronie głównej itp.

Ale gdy używam niestandardowej funkcji mapy witryny (utworzyłem własną wtyczkę), wyświetli mapę witryny z http: //, a nie z https: //

add_action("publish_post", "eg_create_sitemap");
add_action("publish_page", "eg_create_sitemap");
add_action( "save_post", "eg_create_sitemap" );
function eg_create_sitemap() {
if ( str_replace( '-', '', get_option( 'gmt_offset' ) ) < 10 ) { 
    $tempo = '-0' . str_replace( '-', '', get_option( 'gmt_offset' ) ); 
} else { 
    $tempo = get_option( 'gmt_offset' ); 
}
if( strlen( $tempo ) == 3 ) { $tempo = $tempo . ':00'; }
$postsForSitemap = get_posts( array(
    'numberposts' => -1,
    'orderby'     => 'modified',
    'post_type'   => array( 'post', 'page' ),
    'order'       => 'DESC'
) );
$sitemap .= '<?xml version="1.0" encoding="UTF-8"?>' . '<?xml-stylesheet type="text/xsl" href="' . 
    esc_url( home_url( '/' ) ) . 'sitemap.xsl"?>';
$sitemap .= "\n" . '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
$sitemap .= "\t" . '<url>' . "\n" .
    "\t\t" . '<loc>' . esc_url( home_url( '/' ) ) . '</loc>' .
    "\n\t\t" . '<changefreq>daily</changefreq>' .
    "\n\t\t" . '<priority>1.0</priority>' .
    "\n\t" . '</url>' . "\n";
foreach( $postsForSitemap as $post ) {
    setup_postdata( $post);
    $postdate = explode( " ", $post->post_modified );
    $sitemap .= "\t" . '<url>' . "\n" .
        "\t\t" . '<loc>' . get_permalink( $post->ID ) . '</loc>' .
        "\n\t\t" . '<changefreq>Weekly</changefreq>' .
        "\n\t\t" . '<priority>1</priority>' .
        "\n\t" . '</url>' . "\n";
}
$sitemap .= '</urlset>';
$fp = fopen( ABSPATH . "sitemap.xml", 'w' );
fwrite( $fp, $sitemap );
fclose( $fp );
}
}
2
Chymmi

może to być nazywane błędem w get_permalink, ale może nie być. Miałem taki sam przypadek, a kiedy próbowałem echo site_url(); otrzymuję https: // ...

Ale kiedy zaktualizowałem opcje siteurl i home, aby mieć https

get_option( 'siteurl' );
get_option( 'home' );

get_permalink działał dobrze.

Zauważyłem to na wielu stronach .

1
prosti