Wordpress - Получить значение расширенных настраиваемых полей для определения отображаемых сообщений - Использование шорткода - PullRequest
0 голосов
/ 08 марта 2019

Я создал то, что, как мне кажется, будет извлекать сообщения со значениями настраиваемых полей для '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;
}
}

Спасибо за вашу помощь.

...