
plugins — Bagaimana cara menyimpan mediaupload beberapa URL sebagai meta array?
Saya ingin menambahkan banyak gambar ke meta. Saya berhasil menyimpan satu url. Saya tidak yakin bagaimana cara menambahkan banyak URL ke meta.
Mediaupload gambar tunggal berfungsi dengan baik. di bawah ini adalah kode untuk itu. Beberapa unggahan media berfungsi dengan baik di editor backend. Saya tidak tahu cara menyimpan dan mengambil (dalam php) beberapa jalur gambar di meta. Adakah yang bisa membantu atau membimbing saya ke arah yang benar?
atribut yang menyimpan nilai meta untuk satu gambar.
p_mediaURL: {
type: "string",
default: "",
meta: "_duib_p_mediaURL",
source: "meta",
},
p_mediaID: {
type: "integer",
default: null,
meta: "_duib_p_mediaID",
source: "meta",
default: "",
},
Dalam fungsi edit:
const onSelectImage = (media) => {
setAttributes({
p_mediaURL: media.url,
p_mediaID: media.id,
mediaAlt: media.alt,
});
};
komponen unggahan media
<MediaUpload
onSelect={onSelectImage}
allowedTypes="image"
value={p_mediaID}
render={({ open }) => (
<Button className="is-primary mt-3" onClick={open}>
Open Media Library
</Button>
)}
/>
Komponen unggahan media untuk banyak gambar yang berfungsi di editor.
<MediaUpload
onSelect={(gallery) => {
props.setAttributes({ gallery});
}}
type="image"
multiple
value={props.attributes.gallery}
render={({ open }) => (
<Button className="button button-large" onClick={open}>
Select Images
</Button>
)}
/>
Fungsi register_meta adalah
function _duib_p_addimages_register_post_meta() {
register_meta(
'post',
'_duib_p_addimages',
[
'auth_callback' => '__return_true',
'default' => __( '', '_duib_p_addimages' ),
'show_in_rest' => array(
'schema' => array(
'type' => 'array',
'items' => array(
'type' => 'integer'
)
)
),
'single' => true,
'type' => 'string',
'object_subtype' => 'properties',
]
);
}
add_action( 'init', '_duib_p_addimages_register_post_meta' );
Contoh keluaran json adalah
"meta": {
"_duib_p_mediaURL": "http://localhost/property/wp-content/uploads/2022/12/hele_03.jpg",
"_duib_p_description": "",
"_duib_p_addimages": [
]
},