J'essaie de sauvegarder si une case à cocher à l'intérieur de l'utilitaire de téléchargement multimédia est cochée, afin que je puisse la récupérer depuis le début.
J'utilise ce code:
function filter_attachment_fields_to_edit( $form_fields, $post ) {
$foo = (bool) get_post_meta($post->ID, 'foo', true);
$form_fields['foo'] = array(
'label' => 'Is Foo',
'input' => 'html',
'html' => '<label for="attachments-'.$post->ID.'-foo"> ' . '<input type="checkbox" id="attachments-'.$post->ID.'-foo" name="attachments['.$post->ID.'][foo]" value="1"'.($foo ? ' checked="checked"' : '').' /> Yes</label> ',
'value' => $foo,
'helps' => 'Check for yes'
);
return $form_fields;
}
à partir de cette question: Comment ajouter un élément de case à cocher à l'éditeur de pièces jointes avec un exemple
Je dois admettre que je ne comprends pas complètement comment ce code est mis en place. J'ai essayé d'utiliser cette fonction pour enregistrer:
function image_attachment_fields_to_save($post, $attachment) {
if( isset($attachment['imageLinksTo']) ){
update_post_meta($post['ID'], '_imageLinksTo', $attachment['imageLinksTo']);
}
return $post;
}
add_filter("attachment_fields_to_edit", "image_attachment_fields_to_edit", null, 2);
add_filter("attachment_fields_to_save", "image_attachment_fields_to_save", null, 2);
L'identifiant de champ doit correspondre dans les deux fonctions, donc si votre identifiant de champ est foo
, lorsque vous enregistrez, vous devez rechercher cet identifiant et lorsque vous enregistrez un champ de case à cocher il est intelligent de le supprimer s'il n'est pas défini:
function image_attachment_fields_to_save($post, $attachment) {
if( isset($attachment['foo']) ){
update_post_meta($post['ID'], 'foo', $attachment['foo']);
}else{
delete_post_meta($post['ID'], 'foo' );
}
return $post;
}
add_filter("attachment_fields_to_save", "image_attachment_fields_to_save", null, 2);