✏️ 编辑:post.php
路径:
/home/forge/kingkrunch.com/wp/wp-content/plugins/templatemela-metabox/inc/fields/post.php
大小:3.66 KB · 修改:2020-09-11 16:13:48 · 权限:0775 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php // Prevent loading this file directly defined( 'ABSPATH' ) || exit; // Make sure "select" field is loaded require_once RWMB_FIELDS_DIR . 'select-advanced.php'; if ( !class_exists( 'RWMB_Post_Field' ) ) { class RWMB_Post_Field extends RWMB_Field { /** * Enqueue scripts and styles * * @return void */ static function admin_enqueue_scripts() { RWMB_Select_Advanced_Field::admin_enqueue_scripts(); } /** * Get field HTML * * @param mixed $meta * @param array $field * * @return string */ static function html( $meta, $field ) { $field['options'] = self::get_options( $field ); switch ( $field['field_type'] ) { case 'select': return RWMB_Select_Field::html( $meta, $field ); case 'select_advanced': default: return RWMB_Select_Advanced_Field::html( $meta, $field ); } } /** * Normalize parameters for field * * @param array $field * * @return array */ static function normalize_field( $field ) { $default_post_type = esc_html__( 'Post', 'harvest' ); if ( is_string( $field['post_type'] ) ) { $post_type_object = get_post_type_object( $field['post_type'] ); $default_post_type = $post_type_object->labels->singular_name; } $field = wp_parse_args( $field, array( 'post_type' => 'post', 'field_type' => 'select_advanced', 'parent' => false, 'query_args' => array() ) ); $field['std'] = empty( $field['std'] ) ? sprintf( esc_html__( 'Select a %s', 'harvest' ), $default_post_type ) : $field['std']; if ( $field['parent'] ) { $field['multiple'] = false; $field['field_name'] = 'parent_id'; } $field['query_args'] = wp_parse_args( $field['query_args'], array( 'post_type' => $field['post_type'], 'post_status' => 'publish', 'posts_per_page' => '-1' ) ); switch ( $field['field_type'] ) { case 'select': return RWMB_Select_Field::normalize_field( $field ); break; case 'select_advanced': default: return RWMB_Select_Advanced_Field::normalize_field( $field ); } } /** * Get meta value * If field is cloneable, value is saved as a single entry in DB * Otherwise value is saved as multiple entries (for backward compatibility) * * @see "save" method for better understanding * * @param $post_id * @param $saved * @param $field * * @return array */ static function meta( $post_id, $saved, $field ) { if ( isset( $field['parent'] ) && $field['parent'] ) { $post = get_post( $post_id ); return $post->post_parent; } return RWMB_Select_Field::meta( $post_id, $saved, $field ); } /** * Save meta value * If field is cloneable, value is saved as a single entry in DB * Otherwise value is saved as multiple entries (for backward compatibility) * * TODO: A good way to ALWAYS save values in single entry in DB, while maintaining backward compatibility * * @param $new * @param $old * @param $post_id * @param $field */ static function save( $new, $old, $post_id, $field ) { return RWMB_Select_Field::save( $new, $old, $post_id, $field ); } /** * Get posts * * @param array $field * * @return array */ static function get_options( $field ) { $query = new WP_Query( $field['query_args'] ); if ( $query->have_posts() ) { while( $query->have_posts() ) { $post = $query->next_post(); $options[$post->ID] = $post->post_title; } } else { $options = array(); } return $options; } } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF