PHP: проверьте, является ли текущий URL-адрес частью определенного URL

#php #wordpress

#php #wordpress

Вопрос:

Я хочу проверить, является ли текущий URL-адрес частью предварительно определенного URL-адреса.

Например: я хочу проверить, является ли домен example.com/shop/ частью просматриваемого URL-адреса.

Я использую следующую функцию для получения текущего URL-адреса и предопределенного URL-адреса ( $shop_page_url ):

 function shop_page_url_condition(){
    global $wp;
    $shop_page_id = get_option( 'woocommerce_shop_page_id' );
    $shop_page_url = get_permalink($shop_page_id );
    $current_url = home_url(add_query_arg(array(), $wp->request).'/');
    if( $shop_page_url == $current_url) {
        return true;
    } else {
        return false;
    }
}
  

В этом случае это работает, только если $shop_page_url совпадает с $current_url .

Но я хочу проверить, является ли предварительно определенный URL ( $shop_page_url ) частью текущего URL ( example.com/shop/page/7 ).

Ответ №1:

Это strpos то, что вы ищете?

Если я правильно понимаю, вы просто хотите посмотреть, возвращает ли он false:

 if ( strpos( $current_url, $shop_page_url ) !== false ) {
    return true;
} else {
    return false;
}
  

Вы также можете упростить вышесказанное, если хотите сохранить несколько строк кода:

 return strpos( $current_url, $shop_page_url ) !== false;
  

strpos() >= 0 не будет работать. Если подстрока вообще не найдена, выполнение этого приведет к возврату true , а это не то, что вы хотели бы здесь!