2017-11-30 15 views
-1

何時間もstackoverflow.comで検索したところ、答えが見つかりません。メタデータからパーマリンクを自動生成する方法は?

誰かが正しい方向に私を助けることができますか?

だから、私は何を達成しようとしていることは、次の...私はpostnameとパーマリンクを持っていると思い

$post_ID, '_wp_attachment_image_alt', $attachment_title 

を経由して、単一のポストのために自動生成されるように

どちらか引っ張っていますimage_altまたはattachment_titleとpostnameとパーマリンクとして設定からデータ...

add_action('save_post', 'set_slug'); 

    function set_slug($attachment_id){ 
     $new_slug = wp_get_attachment_metadata($attachment_title,'_wp_attachment_image_alt', true); 
     $post_args = array(
      'ID' => $attachment_id, 
      'post_name' => $new_slug, 
     ); 

     wp_update_post($post_args); 
    } 

私は、単一のポストパーマリンクを変更するために私のfunctions.phpでサーバルコードを試してみましたが、そうF arは成功しない。

答えて

0

wp_update_post()は、成功した場合はポストIDを返し、失敗した場合はWP_Errorを返します。 wp_update_post()への呼び出しの戻り値は何ですか?

しかし、これは、wp_update_post()がdo_action( 'save_post'、...)を実行するwp_insert_post()を呼び出すため、無限の再帰が発生する可能性があります。これで、PHPエラーの時間制限を超過し、wp_update_post()への呼び出しが返されることはありません。

引数$ dataと$ postarrで呼び出され、$ dataの 'post_name'を変更するフィルタwp_insert_attachment_dataを使用する方がよい場合があります。

+0

@magentaありがとうございます。私は間違いなくあなたが何をお勧めします、うまくいけば成功をすぐに試してみましょう:) –

関連する問題