2017-02-15 1 views
1

한 가지로 고민하고 있습니다. 나는 그런 워드 프레스 기능을 가지고 :단일 페이지에서만 작동하는 워드 프레스 기능을 만드는 방법

function wpq_insert_attachment_data($data, $postarr){ 
if (!is_single()) { 
    $posttitle = get_the_title($postarr['post_parent']); 
    $data['post_title'] = $posttitle; 
    $data['post_name'] = $posttitle;  
    return $data;   
}} 

add_filter('wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2); 

그것은 훌륭한 작동하지만 그것은 그 함수에서 페이지를 제외하려면 어떤 방법이 있나요 등 모든 단일/사용자 정의 포스트 유형/페이지를 커버? 아직 성공하지 않고 is_single()으로 정렬하려고했습니다.

+0

여기 참조 : 추가보다는 http://stackoverflow.com/questions/22070223/how-can-i-use-is-page-inside-a-plugin 당신의 리디렉션 기능 내부에 걸려있다. – Bart

+0

@Bart - 작동하지 않는다. 모든 유형의 요소에 대해 여전히 실행됩니다 : posts/pages .. 업데이트 된 코드를 살펴보십시오. –

+0

새 코드를 붙여 넣을 수 있습니까? – Bart

답변

0

로드 특정 페이지의 기능, is_page(id_here)에서 페이지 ID를 추가

function wpq_insert_attachment_data($data, $postarr){ 
    if (is_page(page_id)){ 
     $posttitle = get_the_title($postarr['post_parent']); 
     $data['post_title'] = $posttitle; 
     $data['post_name'] = $posttitle;  
     return $data; 
    } 

    add_filter('wp_insert_attachment_data', 'wpq_insert_attachment_data', 10, 2); 

당신은 대신 같은 ID의 페이지 슬러그를 추가 할 수 있습니다 : 당신은 그냥 필요 같은

if (is_page('slug')) 
+0

그러나 실제로 페이지는 내가 제외시키고 자하는 요소입니다. 그래서 페이지를 제외한 모든 곳에서 함수를 실행하고 싶습니다. –

+0

그런 다음'! is_page()' –

+0

을 사용해보십시오. 여전히 모든 유형의 요소에 대해 작동합니다). –

0

이 보이는

if (!is_single()) {

: 조건부 문을 조정할 수 있습니다 0

이 될해야 :

if (!is_page()) {

+0

작동하지 않습니다. 필자는 다른 포럼 스레드에서 functions.php에서 is_page 등이 작동하지 않으며 get_post_type ($ postarr [ 'post_parent'])을 사용해야 함을 발견했습니다. 하지만 아직도 그것은 나에게 아무것도 말하지 않는다 :( –