2015-05-25 64 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

相關問題