En travaillant avec des métaboxes / champs personnalisés, j'ai semblé en créer indirectement un grand nombre _encloseme
meta_keys
partout sur mon site wp_postmeta
.
Vu ici:
Jusqu'à présent, aucun problème n'est survenu et les champs personnalisés fonctionnent bien, mais je ne me suis occupé que de 2 publications sur mon site de test local et je ne veux pas l'implémenter sur mon site en direct si cela devait causer des problèmes plus tard. sur la route. Quelqu'un sait quoi faire à ce sujet, est-ce normal?
Voici le code de mes métaboxes.
<?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');
?>
(Juste au cas où, voici un lien pastbin vers le code ci-dessus: http://pastebin.com/0QsqxtZW )
custom-field
post-meta
mmaximaliste
la source
la source
_encloseme
continue de fournir des informations sur wordpress 2.0 qui sont très anciennes.Réponses:
Version courte:
_encloseme est ajouté à un article lorsqu'il est publié. Le processus wp-cron devrait être planifié peu de temps après pour traiter la publication afin de rechercher des pièces jointes.
En d'autres termes, il les nettoie normalement plus tard. Rien à craindre.
Explication complète:
Les "pièces jointes" sont des liens dans un article vers quelque chose comme un fichier audio ou vidéo. WordPress les trouve en fonction du type MIME des fichiers auxquels il est lié, puis enregistre des métadonnées supplémentaires à leur sujet. Ces métadonnées sont utilisées dans les flux RSS pour créer des balises spéciales pour connecter ces fichiers à la publication.
C'est ainsi que fonctionnent les podcasts, par exemple. Si vous mettez un lien vers un MP3 dans une publication, un boîtier sera créé pour ce lien, et le flux aura le boîtier, et les lecteurs de podcast comme iTunes peuvent ensuite l'utiliser pour pouvoir télécharger le MP3 directement à partir du RSS alimentation.
_encloseme n'est que des métadonnées spéciales indiquant que la publication n'a pas encore été traitée par le processus de clôture. Lorsque vous créez ou mettez à jour une publication publiée, celle-ci est ajoutée automatiquement afin que la publication soit traitée par le créateur de l'enceinte.
la source
1
au méta-_encloseme
tableau des publications sur chaque save_pst / update_post. Cela ne vérifie-t-il pas qu'il est déjà défini et ajoute donc le même à chaque mise à jour / sauvegarde? Merci!