2017-02-15 4 views
1

私は1つのことで苦労しています。私は、このようなワードプレスの機能を持っている:ページのシングル&NOTで​​のみ動作するワードプレス機能を作る方法

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)でページ番号を追加し、特定のページのみに機能をロードします。

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()) {

はなるはずです。

if (!is_page()) {

+0

は動作しません。私は他のフォーラムスレッドで、私の目的のis_pageなどのためのfunctions.phpが動作しないことを知り、get_post_type($ postarr ['post_parent'])を使うべきです。しかし、それは私に何も言わない:( –

関連する問題