#php #wordpress
Вопрос:
Поэтому я создаю виджет панели управления WordPress, который будет отображать все сообщения и страницы, на которых активен блок Гутенберга.
Приведенный ниже код выполняет свою работу и извлекает массив на основе get_posts()
.
Вот что я пытаюсь сделать:
- Есть ли способ, которым я могу вызвать функцию
add_action
иpardot_dashboard_widget()
функцию, ТОЛЬКО если в ней есть хотя бы одна или несколько записейget_posts()
? Если это пустой массив, даже не утруждайте себя созданием метабокса.
Вот код:
/**
* Pardot Widget for Dashboard
*/
function pardot_dashboard_widget()
{
add_meta_box(
'pardot_dashboard_meta_box',
esc_html__( 'Pardot Form Locations', 'wporg' ),
'pardot_dashboard_stats',
'dashboard',
'side', 'high'
);
}
add_action('wp_dashboard_setup', 'pardot_dashboard_widget');
function pardot_dashboard_stats()
{
$args = [
's' => '<!-- wp:acf/pardot-form ',
'sentence' => 1,
'post_type' => [
'post',
'page'
],
];
$pardot_form_query = get_posts($args);
if (!$pardot_form_query) {
echo 'There are no active pardot forms available.';
}
}
Ответ №1:
Вы можете попробовать присвоить мета переменной и использовать ее в операторе if.
Например:
<?php
$price_list = get_post_meta( $post->ID, 'price_list_category1', true );
?>
И затем…
<?php
if ($price_list == '') {
echo 'amp;nbsp;';
} else {
echo '<h2>' . add your meta box conditions here . '</h2>';
}
?>