#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
, а это не то, что вы хотели бы здесь!