在RETURN语句中添加php

时间:2020-05-14 作者:Gusto

如何在return语句中添加php代码。我的以下代码无效:

function read_more() {
return \'<a href="<?php the_permalink(); ?>">Read More</a>\';
}

1 个回复
最合适的回答,由SO网友:Rup 整理而成

您可以直接调用PHP函数。在这种情况下,我们可能不想打电话the_permalink() 因为它呼应了链接:

function the_permalink( $post = 0 ) {
    /* ... */
    echo esc_url( apply_filters( \'the_permalink\', get_permalink( $post ), $post ) );
}
然而,我们希望返回字符串中的链接。因此,您可以选择:

确实要使用\\u permalink(),但是capture the output buffer 要获取回显链接URL,请执行以下操作:

function read_more() {
    ob_start();
    the_permalink();
    $permalink = ob_get_clean();
    return \'<a href="\' . $permalink . \'">Read More</a>\';
}
或者在自己的代码中复制过滤器并从\\u permalink中转义,将其保存在变量中以供使用:

function read_more() {
    $permalink = esc_url( apply_filters( \'the_permalink\', get_permalink(), 0 ) );
    return \'<a href="\' . $permalink . \'">Read More</a>\';
}
或者直接使用get_permalink() 相反,未过滤,这是许多WordPress自己的代码所做的(有时也不转义):

function read_more() {
    return \'<a href="\' . esc_url( get_permalink() ) . \'">Read More</a>\';
}
(顺便提一下,如果你在分发的插件或主题中这样做,你还想让“阅读更多”可以翻译,例如。\'<a href="\' . $permalink . \'">\' . __( \'Read More\' ) . \'</a>\'; )