1

添付ファイルの投稿メタデータを読み取るプラグインを取得し、それを使用して添付されている投稿のコンテンツを更新しようとしています。私は自分のテーマ function.php で以下を使用しています:

add_action( 'afip_created_post', 'get_desc', 10, 2 );
function get_desc( $post_id, $attachment_id ) {

$postmeta = get_post_meta ($attachment_id, '_wp_attachment_metadata', true);

    $meta = $postmeta['image_meta'];
    $mmwwdesc = $meta['description'];
    wp_update_post( array( 'ID' => $post_id, 'post_content'  => $mmwwdesc  ) );

}

次に、プラグインでこの行を使用して関数をフックします

do_action( 'afip_created_post', $new_post_id, $post_id );

変数「$attachment_id」に別の投稿の数字、つまり「15」を入力すると、公開された投稿に説明が挿入されます。出力を に変更するwp_update_post( array( 'ID' => $post_id, 'post_content' => $attachment_id ) );と、公開された投稿の本文に ID 番号がエコーされます。$attachment_id が適切に定義されているように見えるため、元のコードが機能しない理由がわかりません。私はphpの初心者です。私が間違っていることは明らかですか?変数$attachment_idが返される必要があるときにエコーされているか、それともそのような技術的なものですか?

背景: 私は 2 つのワードプレス プラグインを使用しています。1 つは Media Metadata Workflow Wizard (MMWW) と呼ばれ、もう 1 つは Automatic Featured Image Post (AFIP) と呼ばれます。MMWW はイメージ メタデータを抽出し、ポスト メタとしてデータベースに書き込みます。AFIP は、アップロードされたメディアを使用して新しい投稿を作成し、各画像を投稿に添付して、投稿のサムネイルとして設定します。関数が呼び出されたときにメタデータの準備ができていないという問題はないと思います.AFIPはメディアがアップロードされた後に投稿を作成し、そのメタがデータベースに書き込まれたためです. また、既に作成された後、投稿への更新として関数をフックしています。

私は広範な検索を行い、試行錯誤を繰り返しましたが、成功しませんでした。誰でも私を助けることができますか?

ありがとう!

4

1 に答える 1