Jak získat id stránky na základě názvu v url - Affinite.io CZ

Získat url pomocí id stránky jde poměrně snadno, ale co když se dostanete do situace, že to potřebujte obráceně?

Dostal jsem se do situace, že jsem potřeboval ze sitemapy vyhodit url custom 404 stránky. Vytvořil jsem si totiž přesměrování na stránku, kterou jsem poskládal pomocí Gutenbergu, aby trochu vypadala. Vtipný obrázek, formulář na vyhledávání a odkazy na kategorie produktů.

SEO majstri mi ale hned hodili na hlavu, že je ta stránka v xml sitemap. A že musí pryč.

Na webu byl Yoast SEO a ten má pro vyloučení postů ze sitemapy filter, který jsem chtěl použít. Filter ale přijímá pole id postů.

Což byl problém, protože jsem nechtěl psát podmínky a kontrolovat, zda jsem na develu, nebo produkci a podle toho tam vkládat id stránky (devel obasahem neodpovídal úplně produkci). Věděl jsem ale, že na obou webech bude mít stránka slug „stranka-nenalezena“.

A WordPress má príma funkci, která vám vrátí objekt post, podle jeho slugu – get_page_by_path().

Tahle funkce má tři argumenty get_page_by_path( $path, $output, $post_type ).

První je slug postu – stranka-nenalezena
Druhý je typ vrácené hodnoty – defaultně je to object
Třetí je custom post type – defaultně page

No a výsledek je zde:

add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', function () {

    $ids = array( 12, 13, 14, 4552 );
    $page = get_page_by_path( 'stranka-nenalezena' );
    if ( is_object( $page ) ){
        $ids[] = $page->ID;
    }
    return $ids;
} );

PS: stejně to sem píšu, abych to za půl roku našel 🙂

Jak omezit odkaz pouze na obrázek v loopu produktu
Jak omezit odkaz pouze na obrázek v loopu produktu
12 Dub, 2021
Zobrazení odpovídajícího textu na děkovné stránce při platbě na dobírku
Zobrazení odpovídajícího textu na děkovné stránce při platbě na dobírku
30 Dub, 2021

Looking for something?