将散列插入到自定义帖子的URL中,使它们充当锚

时间:2017-10-03 作者:n4a6

我有一些自定义帖子作为首页的一部分,我想用锚跳转到它们。

我有这个:

example.com/about
我想要这个:

example.com/#about
到目前为止,我已经从自定义帖子中删除了slug,使用\'with_front\' => false.

如果能给我任何提示,我将不胜感激。

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

我想出了一个解决办法。

首先,我为自定义帖子类型分配了一个slug:

$rewrite = array(
    \'slug\'                  => \'something\',
    \'with_front\'            => false,
    \'pages\'                 => false,
    \'feeds\'                 => false,
);
我使用一个过滤器和一个正则表达式。

function 1234_filter_custom_post_url( $url, $post ) {
    if ( \'my_custom_post_type\' == get_post_type( $post ) ) {
        $url = preg_replace(\'/something\\/(.+)\\//\', \'#$1\', $url);
    }
    return $url;
}
add_filter( \'post_type_link\', \'1234_filter_custom_post_url\', 10, 2 );

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

post\\u type\\u link是在函数get\\u post\\u permalink返回之前,应用于post或自定义post类型的permalink URL的过滤器。

结束