为 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; ?>
我正在尝试下面的代码片段。我试图删除 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; ?>