为 ACF URL 字段删除 http/https

Remove http/https for ACF URL field

我正在尝试下面的代码片段。我试图删除 URL 字段的“http”和“https”以使输出看起来更好,但我无法真正让它工作。我不知道这里出了什么问题。

<?php if ( $site = get_field( 'vendor_website' ) ) : ?>
    <?php
    $site = str_replace(array('http://', 'https://'), '', $site);
    $site = rtrim($site, '/');
    echo '<a class="vendor-link" href="' $site '">' $site 'target="_blank">' '</a>';
    ?>   
<?php endif; ?>

如果您只想显示 URL 的主机,您可以尝试 parse_url:

$host = parse_url( $site, PHP_URL_HOST );

https://www.php.net/manual/en/function.parse-url.php

根据评论编辑

让我扩展一下这个例子,假设 get_field( 'vendor_website' ) returns 像 https://example.org/test 这样的东西,你只想显示“example.org”,同时留下 link到原来的URL。代码应该是这样的:

<?php if ( $site = get_field( 'vendor_website' ) ) : ?>
    <?php $host = parse_url( $site, PHP_URL_HOST ); ?>
    <a class="vendor-link" href="<?php echo $site ?>" target="_blank">
        <?php echo $host ?>
    </a>
<?php endif; ?>