如何在自定义字段中使用PHP短代码作为Wordpress上的href链接?

时间:2018-10-04 21:59:25

标签: php wordpress shortcode

在我的wordpress页面上(我将使用它作为模板进行复制),我需要使用自定义字段“ dropbox”作为href网址。

我创建了一个PHP代码段(短代码)以替代网址:[xyz-ips snippet =“ dropbox”]

这是短代码中的PHP:

<?php the_field('dropbox'); ?>

这是页面上的代码:

<a href="[xyz-ips snippet=" dropbox"]"="" target="_new">download the documents</a>

此简短代码不会将网址从自定义字段传递到href。有什么想法吗?

谢谢。

4 个答案:

答案 0 :(得分:1)

如果您的简码符合您的描述,则应该可以使用,但是您应该注意,简码需要return个值,而不是echo个值。您没有发布用于注册它的代码,因此我只能假设您正在回显内容,而不返回它。

话虽如此, 我只是让短代码回显整个链接,这样您就可以对整个事情进行更精细的控制:

add_shortcode( 'xyz-ips-link', function( $atts ){
    extract( shortcode_atts( array(
        'snippet' => 'dropbox',
        'text'    => 'Download the Documents', 
        'target'  => '_new',
    ), $atts ) );


    $link = sprintf( '<a href="%s" target="%s">%s</a>', get_field( $snippet ), $target, $text );

    return $link;
});

这将使您仅在内容中的任何地方使用[xyz-ips-link]

在页面模板中

<?php echo do_shortcode( '[xyz-ips-link]' ); ?>

它还使您可以更精细地控制链接的内容,例如[xyz-ips-link snippet="dropbox" text="Some Alternative Text"]

您还将注意到我使用的是get_field()而不是the_field()。 WordPress(和ACF)都具有get_个函数,这些函数返回供您使用的变量,还有the_个函数,它们默认情况下并输出该变量。

您可以看到此代码here的示例,注意:我没有安装ACF,所以我替换了href属性)

答案 1 :(得分:0)

嗨,请尝试它可能对您有用。

echo do_shortcode('dropbox');

答案 2 :(得分:0)

尝试

$dropdown = get_the_field('dropbox');
echo do_shortcode($dropbox);

OR

$dropdown = get_field('dropbox');
echo do_shortcode($dropbox);

答案 3 :(得分:0)

因此,事实证明,有一种特定的方法可以调用网址自定义字段(ACF)。我将以下代码插入了一个PHP代码的简码中。这就像一个魅力!

    <?php 

$link = get_field('dropbox');

if( $link ): ?>

    <a class="button" href="<?php echo $link; ?>" target="_new">download documents</a>

<?php endif; ?>