如果是放大器更改内部链接到放大器版本(WordPress)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (51)

我们使用WordPress,如果链接页面有放大器版本,我想将放大器连接到放大器。我们有这样的结构:test.de/test/amp

不幸的是,我的functions.php中的这段代码并不适用于帖子内容中硬编码的链接。我需要改变什么,所以它适用于每个内部链接:

add_filter( 'post_link', function( $url, $post ) {
    static $recursing = false;
    if ( $recursing ) {
        return $url;
    }
    $recursing = true;
    if ( ! function_exists( 'post_supports_amp' ) || ! post_supports_amp( $post ) ) {
        return $url;
    }
    if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
        $url = amp_get_permalink( $post->ID );
    }
    $recursing = false;
    return $url;
}, 10, 2 );
提问于
用户回答回答于

如果您想要替换帖子内容中的硬编码链接,我建议您使用wordpress的“the_content”过滤器。

https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content

add_filter( 'the_content', 'filter_function_name' )

从这里你应该能够正则表达式匹配链接并附加/ amp到它。

伪代码示例:

function my_the_content_filter($content)
{
    if (function_exists('is_amp_endpoint') && is_amp_endpoint()) {
        $patterns = array(
            //patterns
        );
        $replacements = array(
           //replacements

        );
        $content = preg_replace($patterns, $replacements, $content);
    }

    return $content;
}

add_filter('the_content', 'my_the_content_filter');

扫码关注云+社区

领取腾讯云代金券