Я создал то, что, как мне кажется, будет извлекать сообщения со значениями настраиваемых полей для 'bustype' - когда значение затем вводится в шорткод в качестве параметра. Этот код работал нормально, прежде чем я попытался добавить настраиваемое поле.
Я пробовал это, однако, и ничего не отображается как сообщения.
Взглянув на то, что я написал ниже, и зная, что Расширенное настраиваемое поле является полем выбора с установленными значениями «покупатели», «услуги» и «другие шины» - есть ли какая-то причина, по которой я ниже не буду проверять против значения в metavalue = "", введенного в шорткод?
Шорткод, который я использовал для отображения сообщений со значением «покупатель»:
[list-posts type="company_directory" posts_per_page="40" posts="40" metavalue="buyer"]
Ниже приведен код, который я добавил в functions.php, чтобы попытаться использовать настраиваемое поле.
// start code to add shortcode
add_shortcode( 'list-posts', 'rmcc_post_listing_parameters_shortcode' );
function rmcc_post_listing_parameters_shortcode( $atts ) {
ob_start();
// define attributes and their defaults
extract( shortcode_atts( array (
'type' => 'post',
'order' => 'ASC',
'orderby' => 'menu_order',
'posts' => -1,
'color' => '',
'class' => 'post',
'fabric' => '',
'category' => '',
'metavalue' => '',
'fieldname' => 'bustype',
), $atts ) );
// define query parameters based on attributes
$options = array(
'post_type' => $type,
'order' => $order,
'orderby' => $orderby,
'posts_per_page' => $posts,
'color' => $color,
'class' => $class,
'fabric' => $fabric,
'category_name' => $category,
'meta_key' => $fieldname,
'meta_value' => $metavalue,
);
$query = new WP_Query( $options );
// run the loop based on the query
if ( $query->have_posts() ) { ?>
<?php $i = 0; ?>
<div class="bus-directory et_pb_row et_pb_row_1 et_pb_gutters2 et_pb_row_4col">
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
// Content to return goes here
<?php $i++; endwhile; ?>
<?php
$myvariable = ob_get_clean();
return $myvariable;
}
}
Спасибо за вашу помощь.