wefr جربت الكود الاخ علي على اضافة Secure Custom Fields وعمل بشكل جيد
لاكن عند استخدامي لحقل من نوع Taxonomy واختار خيار Term Object بدل Term ID تضهرلي في صفحة المقالة مشكلة
هذا طبيعي أخي لأن الكود السابق معد لمعالجة الحقول بشكل عام ويعرض القيم كما هي، ولم يكن معد لإظهار حقل التصنيف مع تفعيل خيار الـ Term Object.
جرب الكود التالي المعدل علما أني إضفت لك إمكانية إضافة أكثر من field في الكود المختصر
function display_acf_field_shortcode($atts) {
// تعريف المتغيرات الافتراضية للشورت كود
$atts = shortcode_atts(array(
'fields' => '', // أسماء الحقول مفصولة بفاصلة
'post_id' => get_the_ID() // معرف المقال الحالي افتراضياً
), $atts);
// التحقق من وجود الحقول
if (function_exists('get_field') && !empty($atts['fields'])) {
$fields = explode(',', $atts['fields']);
$output = array();
foreach ($fields as $field) {
$field = trim($field); // إزالة الفراغات
$field_value = get_field($field, $atts['post_id']);
// التحقق من أن القيمة ليست فارغة
if (!empty($field_value)) {
// إذا كانت القيمة من نوع Taxonomy Term Object
if (is_array($field_value) && isset($field_value[0]->term_id)) {
$terms = array_map(function($term) {
return '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
}, $field_value);
$output[] = implode(', ', $terms);
}
// إذا كانت القيمة مصفوفة عادية
elseif (is_array($field_value)) {
$output[] = implode(', ', $field_value);
} else {
$output[] = $field_value;
}
}
}
return implode('<br>', $output); // دمج الحقول المفصولة بفواصل
}
return ''; // إرجاع قيمة فارغة إذا لم يتم العثور على الحقول
}
add_shortcode('show_acf', 'display_acf_field_shortcode');
باستخدام هذا الكود المعدل يمكنك تفعيل خيار Term object مع الحقل taxonomy