我编码社交分享按钮,我想在其中将single.php模板中的当前帖子链接到社交媒体共享链接。
当我附上永久链接以分享网址时的问题,它不会提供帖子的完整网址:
我尝试了http://twitter.com/share?url=<?php the_permalink() ?>
但只提供了/post/69
而不是http://example.com/post/69
的输出。
任何建议?
答案 0 :(得分:9)
在post循环之外,您可以使用wordpress get_permalink()
函数。在循环内部,您可以使用the_permalink($post->ID)
,尽管这会直接回显网址。这是来自wordpress.org的参考资料。
https://developer.wordpress.org/reference/functions/get_permalink/ https://codex.wordpress.org/Function_Reference/the_permalink
答案 1 :(得分:1)
在WP中,您可以使用get_permalink()
函数
你可以这样使用它:
global $post;
<?php echo get_permalink($post->ID);?>
如果您在TheLoop中,可能就是这种情况,如果您在single.php
,那么您可以使用the_permalink()
- 它将直接回显该链接。
答案 2 :(得分:0)
在你的WordPress中任何模板,page.php,single.php,serach.php或其他页面下面的代码都可以正常工作。 get_permalink
是WP函数,get_the_ID()
也是WP函数,它将获得post id,page id。试试这段代码。
尝试将此函数转换为functions.php相对永久链接
function get_relative_permalink( $url ) {
return str_replace( home_url(), "", $url );
}
echo get_relative_permalink(get_permalink(get_the_ID()));
输出/post/50/
或
function get_relative_permalink( $url ) {
$url = home_url($url);
return esc_url($url);
}
echo get_relative_permalink($_SERVER['REQUEST_URI']);
http://twitter.com/share?url=<?php echo get_relative_permalink($_SERVER['REQUEST_URI']); ?>
或
global $post;
echo get_permalink($post->ID);
或
the_permalink();
答案 3 :(得分:0)
很抱歉混淆。
一切正常,除了我使用Prepros实时SASS编译器使用自定义端口进行预览example.com:4000
导致问题。只要我切换到标准网址example.com
,一切正常。
感谢所有人的宝贵贡献。