I would like to show certain data in the HTML/text widget with shortcodes.
I already made the include php call in my functions.php:
function event_widget($atts) {
// turn on output buffering to capture script output
ob_start();
// include file (contents will get saved in output buffer)
include("wp-content/themes/mytheme/widgets/event.php");
// save and return the content that has been output
$content = ob_get_clean();
return $content;
}
//register the Shortcode handler
add_shortcode('event', 'event_widget');
It gets the data to the widget if I put just plain text to event.php, so the call is done correctly, but I don't know how to write the event.php to get this data:
// the loop
<?php if (have_posts()) :
while (have_posts()) : the_post(); ?>
<ul>
<li>
<?php if( get_post_meta($post->ID, "customfield1", true) ): ?>
<?php echo get_post_meta($post->ID, "customfield1", true); ?>
<?php endif; ?>
</li>
<li>
<?php if( get_post_meta($post->ID, "customfield2", true) ): ?>
<?php echo get_post_meta($post->ID, "customfield2", true); ?>
<?php endif; ?>
</li>
</ul>
Try this:
global $post;
echo get_post_meta($post->ID, "customfield1", true);
echo get_post_meta($post->ID, "customfield2", true);
If you echo a value that is false it will amount to '' (nothing) so you don't have to check if they are set.