• 13-05-2022, 03:12:30
    #1
    İçerik sayfalarında özel bir alana bilgi eklemek için Wordpress'in add_meta_box özelliğini kullandım ancak buraya girdiği içeriği php dosyama nasıl yazdırabileceğimi bilmiyorum, kodları nedir acaba? Kodları oluşturmak için şuradaki: Meta Box Generator aracını kullandım.

    Oluşturulan kod şu şekilde;
    <?php
    
    class arac_bilgisi {
        private $config = '{
            "title":"Ek Bilgiler",
            "prefix":"arac_bilgisi_ek_bilgiler",
            "class_name":"arac_bilgisi",
            "context":"side",
            "priority":"default",
            "cpt":"audi",
            "fields":[{
                "type":"number",
                "label":"Yakıt Tüketimi",
                "default":"50",
                "max":"100",
                "step":"5",
                "id":"arac_bilgisi_ek_bilgiler_yakit"
            }]
        }';
    
        public function __construct() {
            $this->config = json_decode( $this->config, true );
            $this->process_cpts();
            add_action( 'add_meta_boxes', [ $this, 'add_meta_boxes' ] );
            add_action( 'admin_head', [ $this, 'admin_head' ] );
            add_action( 'save_post', [ $this, 'save_post' ] );
        }
    
        public function process_cpts() {
            if ( !empty( $this->config['cpt'] ) ) {
                if ( empty( $this->config['post-type'] ) ) {
                    $this->config['post-type'] = [];
                }
                $parts = explode( ',', $this->config['cpt'] );
                $parts = array_map( 'trim', $parts );
                $this->config['post-type'] = array_merge( $this->config['post-type'], $parts );
            }
        }
    
        public function add_meta_boxes() {
            foreach ( $this->config['post-type'] as $screen ) {
                add_meta_box(
                    sanitize_title( $this->config['title'] ),
                    $this->config['title'],
                    [ $this, 'add_meta_box_callback' ],
                    $screen,
                    $this->config['context'],
                    $this->config['priority']
                );
            }
        }
    
        public function admin_head() {
            global $typenow;
            if ( in_array( $typenow, $this->config['post-type'] ) ) {
                ?><?php
            }
        }
    
        public function save_post( $post_id ) {
            foreach ( $this->config['fields'] as $field ) {
                switch ( $field['type'] ) {
                    default:
                        if ( isset( $_POST[ $field['id'] ] ) ) {
                            $sanitized = sanitize_text_field( $_POST[ $field['id'] ] );
                            update_post_meta( $post_id, $field['id'], $sanitized );
                        }
                }
            }
        }
    
        public function add_meta_box_callback() {
            echo '<div class="rwp-description">' . $this->config['description'] . '</div>';
            $this->fields_div();
        }
    
        private function fields_div() {
            foreach ( $this->config['fields'] as $field ) {
                ?><div class="components-base-control">
                    <div class="components-base-control__field"><?php
                        $this->label( $field );
                        $this->field( $field );
                    ?></div>
                </div><?php
            }
        }
    
        private function label( $field ) {
            switch ( $field['type'] ) {
                default:
                    printf(
                        '<label class="components-base-control__label" for="%s">%s</label>',
                        $field['id'], $field['label']
                    );
            }
        }
    
        private function field( $field ) {
            switch ( $field['type'] ) {
                case 'number':
                    $this->input_minmax( $field );
                    break;
                default:
                    $this->input( $field );
            }
        }
    
        private function input( $field ) {
            printf(
                '<input class="components-text-control__input %s" id="%s" name="%s" %s type="%s" value="%s">',
                isset( $field['class'] ) ? $field['class'] : '',
                $field['id'], $field['id'],
                isset( $field['pattern'] ) ? "pattern='{$field['pattern']}'" : '',
                $field['type'],
                $this->value( $field )
            );
        }
    
        private function input_minmax( $field ) {
            printf(
                '<input class="components-text-control__input" id="%s" %s %s name="%s" %s type="%s" value="%s">',
                $field['id'],
                isset( $field['max'] ) ? "max='{$field['max']}'" : '',
                isset( $field['min'] ) ? "min='{$field['min']}'" : '',
                $field['id'],
                isset( $field['step'] ) ? "step='{$field['step']}'" : '',
                $field['type'],
                $this->value( $field )
            );
        }
    
        private function value( $field ) {
            global $post;
            if ( metadata_exists( 'post', $post->ID, $field['id'] ) ) {
                $value = get_post_meta( $post->ID, $field['id'], true );
            } else if ( isset( $field['default'] ) ) {
                $value = $field['default'];
            } else {
                return '';
            }
            return str_replace( '\u0027', "'", $value );
        }
    
    }
    new arac_bilgisi;
  • 13-05-2022, 03:23:30
    #2
    <?php
    $get_video_meta_key = get_post_meta( $post->ID, 'dp_video_file', true );
    
    ?>
    
    <?php echo $get_video_meta_key; ?>
  • 13-05-2022, 03:28:05
    #3
    AtakBilisim adlı üyeden alıntı: mesajı görüntüle
    <?php
    $get_video_meta_key = get_post_meta( $post->ID, 'dp_video_file', true );
    
    ?>
    
    <?php echo $get_video_meta_key; ?>
    Tamamdır hocam, çok teşekkürler.