【问题标题】:Remove http/https for ACF URL field删除 ACF URL 字段的 http/https
【发布时间】:2021-07-24 05:33:05
【问题描述】:

我正在尝试下面的 sn-p。我正在尝试删除 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; ?>

【问题讨论】:

    标签: wordpress advanced-custom-fields


    【解决方案1】:

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

    $host = parse_url( $site, PHP_URL_HOST );
    

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

    根据 cmets 编辑

    让我扩展示例,假设get_field( 'vendor_website' ) 返回类似https://example.org/test 的内容,而您只想显示“example.org”,同时保留指向原始 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,然后是 ACF 归档的 url。如何从此处删除根 URL?谢谢code $host";万一; ?>
    • 查看新示例的更新答案,希望对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2019-07-24
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多