2015-05-25 123 views
0

我想拥有一个包含帖子标题的列表页面。并且每个标题都应链接到外部页面(使用名为'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

您可以检查queried_object全球$ wp_query;

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; 
    } 

} 
+0

当我激活插件使用此代码,将出现消息: “插件激活过程中产生的4个字符意想不到的输出如果您发现‘头已经发送’的消息,与联合问题饲料或其他问题,尝试停用或删除此插件。“ – Marcin

相关问题