Declararíamos un campo genérico que quedaría de la siguiente manera:
[cred_generic_field field="project" type="select" class="" urlparam=""]
{
"required":0,
"validate_format":0,
"persist":0,
"default":[],
"options":[[get_projects_cred_form]]
}
[/cred_generic_field]
La función que devolvería los valores quedaría de la siguiente manera get_projects_cred_form es el shortcode que devolverá los valores y que hemos esepecificado en el apartado options arriba:
function getProjectsCredForm()
{
// Select the ID and Name of every existing project
global $wpdb;
$vProjects = $wpdb->get_results("SELECT id, name FROM wp_bp_projectes ORDER BY name ASC", OBJECT);
if(!empty($vProjects))
{
$vReturnProjects = array();
foreach ($vProjects as $vOption)
{
$vProjectID = $vOption->id;
$vProjectName = $vOption->name;
array_push($vReturnProjects, array('value'=>$vProjectID,'label'=>$vProjectName));
}
$vReturnProjects = json_encode($vReturnProjects);
}
return $vReturnProjects;
}
add_shortcode( 'get_projects_cred_form', 'getProjectsCredForm' );