Arkadaşlar wp nin add_meta_box fonksiyonunu kullanarak özel alanlar
ekletmeye çalışıyroum bunun için db de 2 tablo oluşturdum.Bunları Sayfa
Ekleme Alanına Bastırıyorum. wp_turekle_meta_kategori tablosuna meta
grublarını giriyorum wp_turekle_meta_field alanları tablosuna ise bu
gruplara ait alanları giriyorum.Ancak ekrana basarken grupları listeliyor
ve grupların içine sadece son eklenen wp_turekle_meta_field alanını
basıyor.Kaç gündür çıkmaza girdim bu konuda yardımcı olurmusunuz şimdiden
teşekkürler
wp_turekle_meta_kategori alanları = id,metaBoxId,metaBoxTitle,
metaBoxPage,metaBoxContext,metaBoxPriority
wp_turekle_meta_field alanları =
id,metaBoxKatId,fieldId,fieldName,fieldDesc,fieldType,fieldStd,fieldOptions
Kodlar
<?php
global $meta_box;
// add_meta_box( $id, $title, $callback, $post_type, $context, $priority,
$callback_args );
add_action('admin_menu', 'AlanOlustur');
function AlanOlustur() {
global $wpdb;
global $meta_box;
$metaKategoriCek = mysql_query("SELECT * FROM
wp_turekle_meta_kategori");
while($metaKategoriCekYaz = mysql_fetch_array($metaKategoriCek)){
$kategoriId = $metaKategoriCekYaz['id'];
$metaBoxId = $metaKategoriCekYaz['metaBoxId'];
$metaBoxTitle = $metaKategoriCekYaz['metaBoxTitle'];
add_meta_box( $metaBoxId, $metaBoxTitle,'mytheme_show_box',
'wcb_tur', 'normal', 'high',$meta_box);
$metaFieldCek = mysql_query("SELECT * FROM
wp_turekle_meta_field WHERE metaBoxKatId = '$kategoriId'");
while ($metaFieldYaz = mysql_fetch_array($metaFieldCek)){
$fieldId = $metaFieldYaz['id'];
$metaBoxKatId = $metaFieldYaz['metaBoxKatId'];
$fieldAlanId = $metaFieldYaz['fieldId'];
$fieldName = $metaFieldYaz['fieldName'];
$fieldDesc = $metaFieldYaz['fieldDesc'];
$fieldType = $metaFieldYaz['fieldType'];
$fieldStd = $metaFieldYaz['fieldStd'];
$fieldOptions = $metaFieldYaz['fieldOptions'];
$meta_box = array('fields' => array( array(
'id' => $fieldAlanId,
'name' => $fieldName,
'desc' => $fieldDesc,
'type' => $fieldType,
'std' => $fieldStd,
'options' => $fieldOptions
)));
}
}
}
function mytheme_show_box($meta_box) {
global $meta_box, $post;
// Use nonce for verification
echo '<input type="hidden" name="mytheme_meta_box_nonce" value="',
wp_create_nonce(basename(__FILE__)), '" />';
echo '<table class="form-table">';
foreach ($meta_box['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['std'], '" 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['std'],
'</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><td>',
'</td></tr>';
}
echo '</table>';
}
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php