У меня есть модуль CPT (названный «автомобили») с несколькими настраиваемыми полями (названными «company_location», «color_options», «engine_options»), связанными с настраиваемыми таксономиями (названными «country», «color», «engine»). И каждая из этих пользовательских таксономий имеет настраиваемое поле ‘points’, поэтому я могу назначить числовое значение в баллах для каждого термина.
Я хочу добавить эти баллы для текущей записи ‘car’ и отобразить ее с помощью шорткода.
Например:
Таким образом, если бы текущая автомобильная почта включала все эти термины таксономии в полях отношений, общее количество очков было бы равно 3 (1 + 0 + 0 + 1 + 1 + 1-1 + 0 + 0).
Ниже приведен фрагмент кода, который я использую в своем файле functions.php … большая часть его взята из этого справочного документа: https://pods.io/tutorials/get-values-from-a-custom-relationship-field/
Но по некоторым причинам он продолжает рассчитываться как «0».
Есть идеи, что не так? Я прошел через это миллион раз, но я застрял.
// Add car score shortcode
function shortcode_car_score() {
//get Pods object for current post
$pod = pods( 'car', get_the_id() );
//Loop through these custom fields on the post
$car_fields = array('company_location', 'color_options', 'engine_options');
foreach ($car_fields as $car_field) {
//get the value for the relationship field
$related = $pod->field($car_field);
//loop through related field
if ( ! empty( $related ) ) {
foreach ( $related as $rel ) {
//get id for related post and put in ID
$id = $rel[ 'ID' ];
//get the value for the points custom field in the related post
$points = get_post_meta( $id, 'points', true );
//add points to the total
$car_points = $points + $car_points;
} //end of foreach
} //endif
}//end of foreach
return $car_points;
}
add_shortcode( 'car_score', 'shortcode_car_score' );
Задача ещё не решена.
Других решений пока нет …