Запуск PHP-результатов внутри WP Shortcode

Как я могу привести приведенные ниже результаты в короткий код WP?

PHP-результаты:

<?php function endsWith($haystack, $needle) { // search forward starting from end minus needle length characters return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE); } $lastDate = date('Ym-d', strtotime('today - 30 days')); $todayDate = date('Ym-d'); $results = $wpdb->get_results( "SELECT * FROM `ucsite_statistics_pages` WHERE id=1428 AND `date` BETWEEN '$lastDate' AND '$todayDate' ", ARRAY_A ); for($i=0;$i<count($results);$i++) if (endsWith(get_site_url().''.$results[$i]['uri'], 'http://universitycompare.com/universities/the-uni-of-westminster/')) { echo $results[$i]['count']; echo ',<br />'; } ?> 

Как вставить вышеуказанные «если результаты», которые повторяются в нижнем коротком коде?

 <?php echo do_shortcode('[wp_charts title="linechart" canvaswidth="976px" canvasheight="244px" relativewidth="4" width="976px" height="244px" type="line" align="alignright" datasets=" { data to be here } "]'); ?> 

Если я правильно понял, у вас есть wp_charts который принимает наборы datasets pramaeter, и вы хотите создать новый короткий код, который запускает запрос базы данных и встраивает результаты запроса в качестве значения datasets ?

Если это так, есть несколько способов сделать это, но я думаю, что самый простой – особенно если вы сами не писали wp_charts – это создать новый wp_charts который запускает запрос, а затем вызывает wp_charts .

Например:

 function my_charts_with_data_shortcode_impl($atts, $content = null) { $sql_query = ... $results = $wpdb->get_results($sql_query, ARRAY_A ); $datasets = []; foreach ($results as $row) { if (endsWith(get_site_url().''.$row['uri'], 'http://universitycompare.com/universities/the-uni-of-westminster/')) { $datasets[] = $row['count']; } } return do_shortcode('[wp_charts '. 'title="linechart" canvaswidth="976px" canvasheight="244px" relativewidth="4" '. 'width="976px" height="244px" type="line" align="alignright" '. 'datasets="'. join(",",$datasets) . '"]'); }