Php Wordpress-向自定义分类添加自定义字段
伙伴们 我正在尝试向自定义分类添加一些自定义字段。 根据本教程,我创建了分类法和所有函数: 但是自定义字段没有显示,我没有得到任何错误 这是一段重要的代码Php Wordpress-向自定义分类添加自定义字段,php,wordpress,custom-taxonomy,Php,Wordpress,Custom Taxonomy,伙伴们 我正在尝试向自定义分类添加一些自定义字段。 根据本教程,我创建了分类法和所有函数: 但是自定义字段没有显示,我没有得到任何错误 这是一段重要的代码 class PB_Institucional { public function __construct(){ $this->register_post_type(); $this->taxonomies(); $this->metaboxes();
class PB_Institucional {
public function __construct(){
$this->register_post_type();
$this->taxonomies();
$this->metaboxes();
$this->add_taxonomies_custom_fields();
}
public function register_post_type(){
$labels = array(
'name' => __( 'Paginas Institucionales', 'text-domain' ),
'singular_name' => __( 'Pagina institucional', 'text-domain' ),
'add_new' => _x( 'Agregar Pagina institucional', 'text-domain', 'text-domain' ),
'add_new_item' => __( 'Agregar Pagina institucional', 'text-domain' ),
'edit_item' => __( 'Editar Pagina institucional', 'text-domain' ),
'new_item' => __( 'Nuevo Pagina institucional', 'text-domain' ),
'view_item' => __( 'Ver Pagina institucional', 'text-domain' ),
'search_items' => __( 'Buscar Paginas Institucionales', 'text-domain' ),
'not_found' => __( 'No se encontraron Paginas Institucionales', 'text-domain' ),
'not_found_in_trash' => __( 'No se encontraron Paginas Institucionales en la papelera', 'text-domain' ),
'parent_item_colon' => __( 'Pagina institucional Padre:', 'text-domain' ),
'menu_name' => __( 'Institucional', 'text-domain' ),
'parent' => __('Pagina institucional Contenedor', 'text-domain'),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'description' => 'Paginas institucionales de OLADE',
'taxonomies' => array(),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'menu_position' => 25,
'menu_icon' => admin_url() . 'images/project.png',
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => 'pb_institucional',
'can_export' => true,
'rewrite' => array(
'slug' => 'pb_institucional/'
),
'capability_type' => 'post',
'supports' => array(
'title', 'editor','page-attributes'
)
);
register_post_type('pb_institucional', $args );
}
// Taxonomias
// Mision oficial
// Nombre
// Fecha
// Lugar
// Tema
// Anio
// Documento (PDF)
// Pagina a la que pertenece
// Equipo de apoyo
// Nombre
// Foto
// Cargo
// Mail
// Pagina a la que pertenece
// CV (PDF)
public function taxonomies(){
$taxonomies = array();
$taxonomies['mision'] = array(
'query_var' => 'institucionalMision',
'hierarchical' => false,
'rewrite' => array(
'slug' => 'institucionalMision'
),
'labels' => array(
'name' => __( 'Mision Oficial', 'text-domain' ),
'singular_name' => __( 'Mision Oficial', 'text-domain' ),
'add_new' => _x( 'Agregar Mision Oficial', 'text-domain', 'text-domain' ),
'add_new_item' => __( 'Agregar Mision Oficial', 'text-domain' ),
'edit_item' => __( 'Editar Mision Oficial', 'text-domain' ),
'new_item' => __( 'Nuevo Mision Oficial', 'text-domain' ),
'view_item' => __( 'Ver Mision Oficial', 'text-domain' ),
'search_items' => __( 'Buscar Misiones Oficiales', 'text-domain' ),
'not_found' => __( 'No se encontraron Misiones Oficiales', 'text-domain' ),
'not_found_in_trash' => __( 'No se encontraron Misiones Oficiales en la papelera', 'text-domain' ),
'parent_item_colon' => __( 'Mision Oficial Padre:', 'text-domain' ),
'menu_name' => __( 'Misiones Oficiales', 'text-domain' ),
),
);
$taxonomies['equipo'] = array(
'query_var' => 'institucional_equipo',
'hierarchical' => false,
'rewrite' => array(
'slug' => 'institucional_equipo'
),
'labels' => array(
'name' => __( 'Integrante Equipo', 'text-domain' ),
'singular_name' => __( 'Integrante Equipo', 'text-domain' ),
'add_new' => _x( 'Agregar Integrante Equipo', 'text-domain', 'text-domain' ),
'add_new_item' => __( 'Agregar Integrante Equipo', 'text-domain' ),
'edit_item' => __( 'Editar Integrante Equipo', 'text-domain' ),
'new_item' => __( 'Nuevo Integrante Equipo', 'text-domain' ),
'view_item' => __( 'Ver Integrante Equipo', 'text-domain' ),
'search_items' => __( 'Buscar Misiones Oficiales', 'text-domain' ),
'not_found' => __( 'No se encontraron Integrantes', 'text-domain' ),
'not_found_in_trash' => __( 'No se encontraron Integrantes en la papelera', 'text-domain' ),
'parent_item_colon' => __( 'Integrante Equipo Padre:', 'text-domain' ),
'menu_name' => __( 'Integrantes Equipo', 'text-domain' ),
)
);
$this->register_all_taxonomies( $taxonomies );
}
function register_all_taxonomies( $taxonomies ){
foreach( $taxonomies as $name => $arr ) {
register_taxonomy($name, array('pb_institucional') , $arr );
}
}
function mision_add_custom_fields( $terms ) {
// this will add the custom meta field to the add new term page
?>
<div class="form-field">
<label for="term_meta[fecha]"><?php _e( 'Fecha', 'mision' ); ?></label>
<input type="text" name="term_meta[fecha]" id="term_meta[fecha]" value="">
<p class="description"><?php _e( 'Fecha en formato: YYYY-MM-DD','mision' ); ?></p>
</div>
<div class="form-field">
<label for="term_meta[lugar]"><?php _e( 'Lugar', 'mision' ); ?></label>
<input type="text" name="term_meta[lugar]" id="term_meta[lugar]" value="">
<p class="description"><?php _e( 'Lugar de la mision','mision' ); ?></p>
</div>
<div class="form-field">
<label for="term_meta[tema]"><?php _e( 'Tema', 'mision' ); ?></label>
<textarea name="term_meta[tema]" id="term_meta[tema]"></textarea>
<p class="description"><?php _e( 'Tema del que trató la mision.','mision' ); ?></p>
</div>
<div class="form-field">
<label for="term_meta[anio]"><?php _e( 'Año', 'mision' ); ?></label>
<input type="text" name="term_meta[anio]" id="term_meta[anio]" value="">
<p class="description"><?php _e( 'Tema del que trató la mision.','mision' ); ?></p>
</div>
<div class="form-field">
<label for="term_meta[documento]"><?php _e( 'Documento', 'mision' ); ?></label>
<input type="text" name="term_meta[documento]" id="term_meta[documento]" value="">
<p class="description"><?php _e( 'Documento de la mision.(PDF)','mision' ); ?></p>
</div>
<div class="form-field">
<label for="term_meta[pag]"><?php _e( 'Página a la que pertenece la mision.', 'mision' ); ?></label>
<input type="text" name="term_meta[pag]" id="term_meta[pag]" value="">
<p class="description"><?php _e( 'Tema del que trató la mision.','mision' ); ?></p>
</div>
<?php
}
function add_taxonomies_custom_fields(){
add_action( 'institucionalMision_add_form_fields', 'mision_add_custom_fields', 10, 2 );
}
function metaboxes(){
add_action('add_meta_boxes', function(){
add_meta_box(
'event_details', // ID
'Detalles de la Pagina institucional', // Title
'institucional_meta_box', // Callback
'pb_progproy', // Targeted post type
'normal' // Position
);
});
function institucional_meta_box($post) {
$progproy_description = get_post_meta($post->ID, 'progproy_description', true);
$event_link = get_post_meta($post->ID, 'event_link', true);
$event_logo = get_post_meta($post->ID, 'event_logo', true);
// Security check
wp_nonce_field('progproy_meta_nonce', 'progproy_nonce');
// Display fields
?>
<p>
<label for="progproy_description">Descripción:</label>
<textarea class="widefat" name="progproy_description" id="progproy_description" cols="30" rows="10"><?php echo $progproy_description; ?></textarea>
</p>
<p>
<label for="event_logo">Logo del Evento:</label>
<input type="file" id="wp_custom_attachment" name="wp_custom_attachment" value="" />
</p>
<?php
}
add_action('save_post', function( $post_id ){
// If we're doing an autosave, return
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
// If nonce if not present or invalid, return
if (!isset($_POST['events_nonce']) || !wp_verify_nonce($_POST['events_nonce'], 'progproy_meta_nonce')) return;
// Save/Update Data
if (isset($_POST['progproy_description']) && $_POST['progproy_description'] != '') {
update_post_meta($post_id, 'progproy_description', esc_html($_POST['progproy_description']));
}
// Make sure the file array isn't empty
if(!empty($_FILES['wp_custom_attachment']['name'])) {
// Setup the array of supported file types. In this case, it's just PDF.
$supported_types = array('image/png');
// Get the file type of the upload
$arr_file_type = wp_check_filetype(basename($_FILES['wp_custom_attachment']['name']));
$uploaded_type = $arr_file_type['type'];
// Check if the type is supported. If not, throw an error.
if(in_array($uploaded_type, $supported_types)) {
// Use the WordPress API to upload the file
$upload = wp_upload_bits($_FILES['wp_custom_attachment']['name'], null, file_get_contents($_FILES['wp_custom_attachment']['tmp_name']));
if(isset($upload['error']) && $upload['error'] != 0) {
wp_die('Ocurrió un error al intentar subir el archivo. El error es: ' . $upload['error']);
} else {
add_post_meta($id, 'wp_custom_attachment', $upload);
update_post_meta($id, 'wp_custom_attachment', $upload);
} // end if/else
} else {
wp_die("El tipo de archivo que eligió no es PNG. Sólo puede subirse archivos de formato PNG en este campo.");
} // end if/else
} // end if
if (isset($_POST['event_logo']) && $_POST['event_logo'] != '') {
update_post_meta($post_id, 'event_logo', esc_html($_POST['event_logo']));
}
});
}
}
PB_类机构{
公共函数构造(){
$this->register_post_type();
$this->taxonomies();
$this->metaboxes();
$this->添加分类法\自定义\字段();
}
公共功能寄存器\u post\u type(){
$labels=数组(
“名称”=>(Paginas Institutcionales,“文本域”),
“单数名称”=>(“Pagina Institutional”,“文本域”),
“add_new”=>\u x('Agregar Pagina Institutional','text domain','text domain'),
“添加新项目”=>(“Agregar Pagina Institutional”,“文本域”),
“编辑项”=>“(“编辑帕吉纳研究所”,“文本域”),
“新项目”=>(“新帕吉纳研究所”,“文本域”),
“查看项目”=>“(“Ver Pagina Institutional”,“文本域”),
“搜索项目”=>“(“巴士帕金斯研究所”、“文本域”),
'not_found'=>'('No se encron Paginas institutcionales','text domain'),
“未在垃圾桶中找到”=>“(“没有在papelera Paginas Institutecionales en la papelera”,“文本域”)中找到,
“父项冒号”=>(“Pagina Institutcional Padre:”,“文本域”),
“菜单名称”=>“(“机构”、“文本域”),
“父项”=>“‘Pagina Institutcional Contendor’,‘文本域’”,
);
$args=数组(
“标签”=>$labels,
“分层”=>正确,
“description”=>“Paginas Institutecionales de OLADE”,
“分类法”=>array(),
“public”=>正确,
'show_ui'=>true,
“在菜单中显示”=>true,
“在管理栏中显示”=>true,
“菜单位置”=>25,
'menu_icon'=>admin_url()。'images/project.png',
“在导航菜单中显示”=>true,
“公开可查询”=>正确,
“从搜索中排除”=>false,
“has_archive”=>true,
“查询变量”=>“pb研究所”,
“can_export”=>true,
“重写”=>数组(
“slug”=>“pb_Institutional/”
),
“能力类型”=>“职位”,
'支持'=>数组(
“标题”、“编辑器”、“页面属性”
)
);
注册后类型('pb\U institucional',$args);
}
//分类学
//政府部门
//名义
//费查
//卢格
//特马
//阿尼奥
//文件(PDF)
//帕吉娜·拉克佩特内斯酒店
//阿波约装备
//名义
//福托
//货物
//邮寄
//帕吉娜·拉克佩特内斯酒店
//简历(PDF)
公共功能分类法(){
$taxonomies=array();
$taxonomies['mision']=数组(
“查询变量”=>“机构分析”,
“分层”=>false,
“重写”=>数组(
“slug”=>“机构分析”
),
“标签”=>数组(
'name'=>uuu('Mision of icial','text domain'),
'singular_name'=>'('Mision of icial','text domain'),
'add_new'=>\u x('Agregar Mision of icial','text domain','text domain'),
“添加新项目”=>(“Agregar Mision of icial”,“文本域”),
“编辑项目”=>“(“编辑官方信息”、“文本域”),
“新项目”=>“(“新信息”、“文本域”),
“查看项目”=>“(“官方版本”、“文本域”),
“搜索项目”=>“(“商业广告”、“文本域”),
'not_found'=>'('No se encron Misiones of ciales','text domain'),
“未在垃圾箱中找到”=>“(“没有在papelera的广告中找到”文本域“),
'parent_item_colon'=>'('Mision of icial Padre:','text domain'),
“menu_name'=>”(“商业广告”、“文本域名”),
),
);
$taxonomies['equipo']=数组(
“查询变量”=>“设备研究所”,
“分层”=>false,
“重写”=>数组(
“slug”=>“设备研究所”
),
“标签”=>数组(
“名称”=>“(“集成设备”,“文本域”),
“单数名称”=>(“集成设备”、“文本域”),
“add_new”=>\u x('Agregar Integrante Equipo','text domain','text domain'),
“添加新项目”=>(“Agregar Integrante Equipo”,“文本域”),
“编辑项目”=>“(“编辑集成设备”,“文本域”),
“新建项目”=>(“新集成设备”,“文本域”),
“查看项目”=>“(“集成设备”、“文本域”),
“搜索项目”=>“(“商业广告”、“文本域”),
“未找到”=>“(“无se encontraron Integrantes”,“文本域”),
“未在垃圾桶中找到”=>“(“未在papelera中找到”文本域“),
“父项\u冒号”=>__(