我希望有一个页面包含帖子标题的列表。每个标题都应链接到外部页面(使用名为“link”的自定义字段)。我有这个代码,但它改变了网站上的任何地方的链接,我希望它只在一个特定的页面上工作,让我们说在一个名为“Example”的页面上。在主页和除“页面示例”页面之外的任何地方,它都应链接到帖子。
add_filter( 'post_link', 'links', 10, 2 );
function links( $link, $post )
{
$meta = get_post_meta( $post->ID, 'link', TRUE );
$url = esc_url( filter_var( $meta, FILTER_VALIDATE_URL ) );
return $url ? $url : $link;
}
答案 0 :(得分:0)
您可以在全局 $ wp_query 上查看 queried_object ;
add_filter( 'post_link', 'links', 10, 2 );
function links( $link, $post )
{
$meta = get_post_meta( $post->ID, 'link', TRUE );
$url = esc_url( filter_var( $meta, FILTER_VALIDATE_URL ) );
if($wp_query->queried_object instanceof WP_Post && $wp_query->queried_object->ID == 258){
return $url ? $url : $link;
}else{
return $link;
}
}