2013-03-09 5 views
3

나는 플러그인을 코딩 중이며 짧은 코드를 사용하여 페이지 내용을 렌더링합니다. 페이지 제목을 변경하고 싶습니다. 나는 이것을 다음과 같이 사용했다 :짧은 코드를 사용하여 페이지 제목을 변경하십시오.

// Change the title of the page of the charts to add the current month. 
add_filter('the_title', 'charts_title', 10, 2); 
function charts_title($title, $id) { 
    $title .= ' ' . date('F Y'); 
    return $title; 
} 

그러나 모든 게시물과 페이지에 대해 그렇게한다. 내가 만든 짧은 코드가 포함 된 페이지에만 해당 작업을 수행 할 수 있습니까? 나는 그것을하려고 노력했지만 그것은 효과가 없다.

add_shortcode('charts-vote', 'charts_vote'); 
function charts_vote($atts) { 
    // Add the filter only in the short code function callback. 
    add_filter('the_title', 'charts_title', 10, 2); 

    // ... // 
    return $content; 
} 

누군가 나를 도울 수 있습니까?

+0

페이지 머리글이 인쇄 된 후 단축 코드가 렌더링됩니다. 그것은 단축 코드가 일반적으로 작동하는 방식입니다. 즉, the_content가 실행될 때 렌더링됩니다. 이것은 까다로울 것입니다. –

답변

2

나는 당신의 세트 업의 특성이 단축 코드에 대한 검사가 필요할 수 있음을 이해하지만, 어쩌면 사용자 정의 필드는 사용할 수 있습니다 :

add_filter('the_title', 'charts_title_so_15312385', 10, 2); 

function charts_title_so_15312385($title, $post_id) 
{ 
    // Admin area, bail out 
    if(is_admin()) 
     return $title; 

    // Custom field not set, bail out 
    $mod_title = get_post_meta($post_id, 'mod_title', true); 
    if(!$mod_title) 
     return $title; 

    // Ok, modify title 
    $title .= ' ' . date('F Y'); 
    return $title; 
} 

단축 코드 수 사용자 정의 필드 심지어 "대화"에 대한 확장 된 구성.

편의를 위해 Custom Meta Box을 만들거나 Advanced Custom Fields과 같은 플러그인을 사용할 수 있습니다.

+1

고마워요, 당신은 생명의 은인입니다 :) –

+0

도와 드리겠습니다, Monsieur Baptiste;) – brasofilo

관련 문제