即使在永久链接设置中选择了帖子名称,get_post_permalink也会使用普通格式

时间:2019-01-31 10:21:30

标签: php wordpress

这是我的自定义功能:

add_filter('post_link', 'get_custom_permalink', 10, 4);
function get_custom_permalink($permalink, $post, $leavename = false) {
$options = get_option('my-options');
$custom_field = $options['my_field'];
//$permalink = get_option('permalink_structure');
$url = $options['agg_permalink'];
$url = str_replace("%post%", get_post_permalink($post), $url);
$url = str_replace("%site%", get_site_url(), $url);
$url = str_replace("%home%", get_home_url(), $url);
  if (!empty($url) ) {
    return $url;
    } else {
      return $permalink;
    }
}

get_post_permalink($post)始终使用普通url作为默认的wordpress永久链接选项,即使在我的永久链接设置中选择了帖子名称也是如此。

所以浏览器中的URL是example.com/post_type=post&p=ID,但是当我在创建的字段中使用%post%时,我想获取帖子名称。

使用get_permalinkget_the_permalink时会出现空白的wordpress页面。还有什么我可以尝试的吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

只要您想使用链接,就循环使用the_permalink()函数,并在永久链接设置中使用/%postname%/而不是%post%