Saat bekerja dengan metabox / bidang khusus saya sepertinya secara tidak langsung membuat banyak dari ini di _encloseme
meta_keys
seluruh saya wp_postmeta
.
Terlihat di sini:
Sejauh ini tidak ada masalah yang muncul dari ini dan bidang khusus berfungsi dengan baik, tetapi saya hanya gelisah dengan 2 atau lebih posting di situs pengujian lokal saya dan saya tidak ingin menerapkannya ke situs langsung saya jika itu akan menyebabkan masalah nanti di ujung jalan. Ada yang tahu apa yang harus dilakukan tentang ini, apakah itu normal?
Inilah kode untuk metabox saya.
<?php
//Add meta boxes to post types
function plib_add_box() {
global $meta_box;
foreach($meta_box as $post_type => $value) {
add_meta_box($value['id'], $value['title'], 'plib_format_box', $post_type, $value['context'], $value['priority']);
}
}
//Formatting
function plib_format_box() {
global $meta_box, $post;
// verification
echo '<input type="hidden" name="plib_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
echo '<table class="form-table">';
foreach ($meta_box[$post->post_type]['fields'] as $field) {
// get current post meta data
$meta = get_post_meta($post->ID, $field['id'], true);
echo '<tr>'.
'<th style="width:20%"><label for="'. $field['id'] .'">'. $field['name']. '</label></th>'.
'<td>';
switch ($field['type']) {
case 'text':
echo '<input type="text" name="'. $field['id']. '" id="'. $field['id'] .'" value="'. ($meta ? $meta : $field['default']) . '" size="30" style="width:97%" />'. '<br />'. $field['desc'];
break;
case 'textarea':
echo '<textarea name="'. $field['id']. '" id="'. $field['id']. '" cols="60" rows="4" style="width:97%">'. ($meta ? $meta : $field['default']) . '</textarea>'. '<br />'. $field['desc'];
break;
case 'select':
echo '<select name="'. $field['id'] . '" id="'. $field['id'] . '">';
foreach ($field['options'] as $option) {
echo '<option '. ( $meta == $option ? ' selected="selected"' : '' ) . '>'. $option . '</option>';
}
echo '</select>';
break;
case 'radio':
foreach ($field['options'] as $option) {
echo '<input type="radio" name="' . $field['id'] . '" value="' . $option['value'] . '"' . ( $meta == $option['value'] ? ' checked="checked"' : '' ) . ' />' . $option['name'];
}
break;
case 'checkbox':
echo '<input type="checkbox" name="' . $field['id'] . '" id="' . $field['id'] . '"' . ( $meta ? ' checked="checked"' : '' ) . ' />';
break;
}
echo '<td>'.'</tr>';
}
echo '</table>';
}
// Save data from meta box
function plib_save_data($post_id) {
global $meta_box, $post;
//Verify
if (!wp_verify_nonce($_POST['plib_meta_box_nonce'], basename(__FILE__))) {
return $post_id;
}
//Check > autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
//Check > permissions
if ('page' == $_POST['post_type']) {
if (!current_user_can('edit_page', $post_id)) {
return $post_id;
}
} elseif (!current_user_can('edit_post', $post_id)) {
return $post_id;
}
foreach ($meta_box[$post->post_type]['fields'] as $field) {
$old = get_post_meta($post_id, $field['id'], true);
$new = $_POST[$field['id']];
if ($new && $new != $old) {
update_post_meta($post_id, $field['id'], $new);
} elseif ('' == $new && $old) {
delete_post_meta($post_id, $field['id'], $old);
}
}
}
add_action('save_post', 'plib_save_data');
//We create an array called $meta_box and set the array key to the relevant post type
// If custom post type, change the 'post' variable
$meta_box['post'] = array(
//This is the id applied to the meta box
'id' => 'venue_location',
//This is the title that appears on the meta box container
'title' => 'Venue/Location',
//This defines the part of the page where the edit screen section should be shown
'context' => 'normal',
//This sets the priority within the context where the boxes should show
'priority' => 'high',
//Here we define all the fields we want in the meta box
'fields' => array(
array(
'name' => 'Venue',
'desc' => 'Venue Name',
'id' => 'venue_info',
'type' => 'text',
'default' => ''
),
array(
'name' => 'Location',
'desc' => 'Location of the Venue',
'id' => 'location_info',
'type' => 'text',
'default' => ''
)
)
);
add_action('admin_menu', 'plib_add_box');
?>
(Hanya memetikannya, inilah tautan pastbin ke kode di atas: http://pastebin.com/0QsqxtZW )
custom-field
post-meta
mmaksimalis
sumber
sumber
_encloseme
terus muncul dengan informasi wordpress 2.0 yang sudah sangat tua.Jawaban:
Versi pendek:
_encloseme ditambahkan ke pos saat dipublikasikan. Proses wp-cron harus dijadwalkan sesaat kemudian untuk memproses posting untuk mencari lampiran.
Dengan kata lain, itu membersihkan mereka secara normal nanti. Tidak ada yang perlu dikhawatirkan.
Penjelasan lengkap:
"Enclosures" adalah tautan dalam pos ke sesuatu seperti file audio atau video. WordPress menemukan ini berdasarkan pada tipe MIME dari file yang ditautkan, kemudian menyimpan metadata tambahan tentang mereka. Metadata ini digunakan dalam umpan RSS, untuk membuat tag khusus untuk menghubungkan file-file ini ke posting.
Inilah cara kerja podcast, misalnya. Jika Anda meletakkan tautan ke MP3 di pos, maka enklosur akan dibuat untuk tautan itu, dan umpan akan memiliki enklosur, dan pembaca podcast seperti iTunes kemudian dapat menggunakannya untuk dapat mengunduh MP3 langsung dari RSS makan.
_encloseme hanyalah metadata khusus yang mengatakan bahwa pos belum diproses oleh proses lampiran. Ketika Anda membuat atau memperbarui posting yang diterbitkan, yang ditambahkan secara otomatis sehingga posting akan diproses oleh pembuat enklosur.
sumber
1
ke_encloseme
array meta posting pada setiap save_pst / update_post. Tidakkah ini memeriksa apakah sudah disetel dan karenanya menambahkan hal yang sama pada setiap pembaruan / penyimpanan? Terima kasih!