Short Code to get Custom Field on Post
Warning: This article was published many years ago (greater than two) Jan 15, 2016. Some information may be outdated.
Short Code to get Custom Field on Post had been quite a difficult task as the CFS has many options for field types. Install Plugin “ShortCode Exce PHP” and Add a New Short Code with Name: “get_Fields” and in the code area enter the code below.
The Usage is [get_Fields arg=”Custom_Field_Slug”] will return the Value in the Custom_Field_Slug. If Error then the Error is also displayed
/* short code for getting the custom field set using
* Custom Field Suite
* using "ShortCode Exce PHP" Plugin
*/
extract(shortcode_atts(array('arg' => 'default'), $atts));
global $cfs;
if ($arg !== 'default') {
// get all the custom field in the post //
$AllFields = CFS()->get(false);
// Get the Keys from the Array //
$AllKeys = array_keys($AllFields);
$flipped_haystack = array_flip($AllKeys);
// Find if the asked Custom Field is available in Post //
if ( isset($flipped_haystack[$arg]) )
{
// echo 'Yes it\'s there!<br />';
$getFields = CFS()->get($arg);
// var_dump($getFields . '<br/>');
// Check if return is array or not //
if (is_array($getFields)) {
// echo 'is Array <br />';
// code to list each element of the Array //
$it = new CachingIterator(new ArrayIterator($getFields));
foreach($it as $key => $value) {
if (!$it->hasNext()) {
echo $value;
} else {
echo $value, '<br /> ';
}
}
} else {
// echo 'Not a Array <br />';
echo $getFields . PHP_EOL;
}
} else {
// Trap the error and display the list of Custom Filed on the Post //
echo '<strong>' . $arg . ':</strong><span style="color:red"> Custom Field Not Found </span><br />' . '<strong>The Post Contains Following Custom Field </strong><br />';
echo '<ul>';
$it = new CachingIterator(new ArrayIterator($AllKeys));
foreach($it as $key => $value) {
if (!$it->hasNext()) {
echo '<li>' .$value . '</li>';
} else {
echo '<li>' .$value, '</li>';
}
}
echo '</ul>';
// List the Custom Field //
// var_dump($AllKeys);
}
} else {
echo 'No \"Field\" Value Passed to Get data';
} // if ($arg !== 'default')

