2017-02-15 14 views
1

Я борюсь с одной вещью. У меня есть такая функция WordPress:Как заставить функцию wordpress работать только на одиночном и НЕ для страниц

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 чем добавить свой hook внутри функции перенаправления – Bart

+0

@Bart - он не работает. Он по-прежнему выполняется для ВСЕХ типов элементов: сообщений/страниц. Взгляните на обновленный код. –

+0

можете ли вы вставить свой новый код? – Bart

ответ

0

нагрузки функция только на определенной странице, добавить идентификатор страницы в is_page(id_here):

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

вы также можете добавить страницу слизняка вместо идентификатора, как:

if (is_page('slug')) 
+0

Но на самом деле страницы - это элемент, который я хочу исключить (поэтому я хочу выполнять функцию всюду, кроме страниц) –

+0

, затем попробуйте использовать '! Is_page()' –

+0

, все еще функция работает для всех типов элементов). –

0

Похоже, вам просто нужно настроить свой условный оператор:

if (!is_single()) {

должны стать:

if (!is_page()) {

+0

Не работает. Ive узнал на другом форуме, что в functions.php для моих целей is_page и т. Д. Не будет работать, и я должен использовать get_post_type ($ postarr ['post_parent']). Но все равно мне ничего не говорит :( –