Browse Source

add featured_image_url

windhamdavid 4 years ago
parent
commit
2c88f44f22
6 changed files with 1174 additions and 665 deletions
  1. 1 1
      build/index.asset.php
  2. 0 260
      build/index.js
  3. 101 36
      metabox.php
  4. 1030 364
      package-lock.json
  5. 4 4
      package.json
  6. 38 0
      src/index.js

+ 1 - 1
build/index.asset.php

@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '56803822ba7351846a42a7c8e45ba986');
+<?php return array('dependencies' => array('wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => 'fd8fddca48148623d5ddced7e04cae74');

File diff suppressed because it is too large
+ 0 - 260
build/index.js


+ 101 - 36
metabox.php

@@ -1,5 +1,7 @@
 <?php
 
+/////////////// Media URL (Custom Field - media) /////////////////
+
 function dw_guten_register_media_meta() {
 	register_meta('post', 'media', array(
 		'show_in_rest' => true,
@@ -13,19 +15,6 @@ function dw_guten_register_media_meta() {
 }
 add_action('init', 'dw_guten_register_media_meta');
 
-function dw_guten_register_desc_meta() {
-	register_meta('post', 'meta_desc', array(
-		'show_in_rest' => true,
-		'type' => 'string',
-		'single' => true,
-		'sanitize_callback' => 'sanitize_text_field',
-		'auth_callback' => function() { 
-			return current_user_can('edit_posts');
-		}
-	));
-}
-add_action('init', 'dw_guten_register_desc_meta');
-
 function dw_guten_add_media_meta_box() {
 	add_meta_box( 
 		'dw_guten_post_options_metabox', 
@@ -39,19 +28,6 @@ function dw_guten_add_media_meta_box() {
 }
 add_action( 'add_meta_boxes', 'dw_guten_add_media_meta_box' );
 
-function dw_guten_add_desc_meta_box() {
-	add_meta_box( 
-		'dw_guten_post_options_metabox', 
-		'Post Options', 
-		'dw_guten_post_options_metabox_desc', 
-		'post', 
-		'normal', 
-		'default',
-		array('__back_compat_meta_box' => true)
-	);
-}
-add_action( 'add_meta_boxes', 'dw_guten_add_desc_meta_box' );
-
 function dw_guten_post_options_metabox_html($post) {
     $field_value = get_post_meta($post->ID, 'media', true);
     wp_nonce_field( 'dw_guten_update_post_metabox', 'dw_guten_update_post_nonce' );
@@ -64,36 +40,125 @@ function dw_guten_post_options_metabox_html($post) {
     <?php
 }
 
-function dw_guten_post_options_metabox_desc($post) {
-    $field_value = get_post_meta($post->ID, 'media', true);
-    wp_nonce_field( 'dw_guten_update_post_metabox_desc', 'dw_guten_update_post_nonce' );
+function dw_guten_save_post_metabox($post_id, $post) {
+    $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
+    if( !current_user_can( $edit_cap, $post_id )) {
+        return;
+    }
+    if( !isset( $_POST['dw_guten_update_post_nonce']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce'], 'dw_guten_update_post_metabox' )) {
+        return;
+    }
+
+    if(array_key_exists('dw_guten_media_metafield', $_POST)) {
+        update_post_meta( 
+            $post_id, 
+            'media', 
+            sanitize_text_field($_POST['dw_guten_media_metafield'])
+        );
+    }
+}
+add_action( 'save_post', 'dw_guten_save_post_metabox', 10, 2 );
+
+
+/////////  Feature Img URL (Custom Field - featured_image_url) ////////////
+
+function dw_guten_register_featured_image_url_meta() {
+	register_meta('post', 'featured_image_url', array(
+		'show_in_rest' => true,
+		'type' => 'string',
+		'single' => true,
+		'sanitize_callback' => 'sanitize_text_field',
+		'auth_callback' => function() { 
+			return current_user_can('edit_posts');
+		}
+	));
+}
+add_action('init', 'dw_guten_register_featured_image_url_meta');
+
+function dw_guten_add_featured_image_url_meta_box() {
+	add_meta_box( 
+		'dw_guten_post_options_metabox', 
+		'Post Options', 
+		'dw_guten_post_options_metabox_featured_image_url', 
+		'post', 
+		'normal', 
+		'default',
+		array('__back_compat_meta_box' => true)
+	);
+}
+add_action( 'add_meta_boxes', 'dw_guten_add_featured_image_url_meta_box' );
+
+function dw_guten_post_options_metabox_featured_image_url($post) {
+    $field_value = get_post_meta($post->ID, 'featured_image_url', true);
+    wp_nonce_field( 'dw_guten_update_post_metabox_featured_image_url', 'dw_guten_update_post_nonce' );
     ?>
     <p>
-        <label for="dw_guten_desc_metafield"><?php esc_html_e( 'Meta Excerpt', 'textdomain' ); ?></label>
+        <label for="dw_guten_featured_image_url_metafield"><?php esc_html_e( 'Featured Image URL', 'textdomain' ); ?></label>
         <br />
-        <input class="widefat" type="text" name="dw_guten_desc_metafield" id="dw_guten_desc_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
+        <input class="widefat" type="text" name="dw_guten_featured_image_url_metafield" id="dw_guten_featured_image_url_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
     </p>
     <?php
 }
 
-function dw_guten_save_post_metabox($post_id, $post) {
+function dw_guten_save_post_metabox_featured_image_url($post_id, $post) {
     $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;
     if( !current_user_can( $edit_cap, $post_id )) {
         return;
     }
-    if( !isset( $_POST['dw_guten_update_post_nonce']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce'], 'dw_guten_update_post_metabox' )) {
+    if( !isset( $_POST['dw_guten_update_post_nonce_featured_image_url']) || !wp_verify_nonce( $_POST['dw_guten_update_post_nonce_featured_image_url'], 'dw_guten_update_post_metabox_featured_image_url' )) {
         return;
     }
 
     if(array_key_exists('dw_guten_media_metafield', $_POST)) {
         update_post_meta( 
             $post_id, 
-            'media', 
-            sanitize_text_field($_POST['dw_guten_media_metafield'])
+            'featured_image_url', 
+            sanitize_text_field($_POST['dw_guten_featured_image_url_metafield'])
         );
     }
 }
-add_action( 'save_post', 'dw_guten_save_post_metabox', 10, 2 );
+add_action( 'save_post', 'dw_guten_save_post_metabox_featured_image_url', 10, 2 );
+
+
+/////////////// Meta Description (Custom Field - meta_desc) /////////////////
+
+function dw_guten_register_desc_meta() {
+	register_meta('post', 'meta_desc', array(
+		'show_in_rest' => true,
+		'type' => 'string',
+		'single' => true,
+		'sanitize_callback' => 'sanitize_text_field',
+		'auth_callback' => function() { 
+			return current_user_can('edit_posts');
+		}
+	));
+}
+add_action('init', 'dw_guten_register_desc_meta');
+
+function dw_guten_add_desc_meta_box() {
+	add_meta_box( 
+		'dw_guten_post_options_metabox', 
+		'Post Options', 
+		'dw_guten_post_options_metabox_desc', 
+		'post', 
+		'normal', 
+		'default',
+		array('__back_compat_meta_box' => true)
+	);
+}
+add_action( 'add_meta_boxes', 'dw_guten_add_desc_meta_box' );
+
+function dw_guten_post_options_metabox_desc($post) {
+    $field_value = get_post_meta($post->ID, 'media', true);
+    wp_nonce_field( 'dw_guten_update_post_metabox_desc', 'dw_guten_update_post_nonce' );
+    ?>
+    <p>
+        <label for="dw_guten_desc_metafield"><?php esc_html_e( 'Meta Excerpt', 'textdomain' ); ?></label>
+        <br />
+        <input class="widefat" type="text" name="dw_guten_desc_metafield" id="dw_guten_desc_metafield" value="<?php echo esc_attr( $field_value ); ?>" />
+    </p>
+    <?php
+}
 
 function dw_guten_save_post_metabox_desc($post_id, $post) {
     $edit_cap = get_post_type_object( $post->post_type )->cap->edit_post;

File diff suppressed because it is too large
+ 1030 - 364
package-lock.json


+ 4 - 4
package.json

@@ -18,9 +18,9 @@
   },
   "dependencies": {
     "@wordpress/components": "^8.5.0",
-    "@wordpress/data": "^4.12.0",
-    "@wordpress/edit-post": "^3.11.0",
-    "@wordpress/i18n": "^3.8.0",
-    "@wordpress/plugins": "^2.10.0"
+    "@wordpress/data": "^4.23.0",
+    "@wordpress/edit-post": "^3.22.0",
+    "@wordpress/i18n": "^3.15.0",
+    "@wordpress/plugins": "^2.21.0"
   }
 }

+ 38 - 0
src/index.js

@@ -23,6 +23,25 @@ let PluginMetaFields = (props) => {
 	)
 }
 
+let PluginMetaFields_featured_image_url = (props) => {
+	return (
+	<>
+		<PanelBody
+			title={__("Image URL", "textdomain")}
+			icon="format-image"
+			intialOpen={ true }
+		>
+		<TextControl 
+			value={props.text_metafield_featured_image_url}
+			label={__("meta property og:image", "textdomain")}
+			help="postmeta:featured_image_url absolute url to image"
+			onChange={(value) => props.onMetaFieldChange_featured_image_url(value)}
+		/>
+		</PanelBody>
+	</>
+	)
+}
+
 let PluginMetaFields_desc = (props) => {
 	return (
 	<>
@@ -50,6 +69,14 @@ PluginMetaFields = withSelect(
     }
 )(PluginMetaFields);
 
+PluginMetaFields_featured_image_url = withSelect(
+    (select) => {
+        return {
+             text_metafield_featured_image_url: select('core/editor').getEditedPostAttribute('meta')['featured_image_url']
+        }
+    }
+)(PluginMetaFields_featured_image_url);
+
 PluginMetaFields_desc = withSelect(
     (select) => {
         return {
@@ -68,6 +95,16 @@ PluginMetaFields = withDispatch(
     }
 )(PluginMetaFields);
 
+PluginMetaFields_featured_image_url = withDispatch(
+    (dispatch) => {
+        return {
+            onMetaFieldChange_featured_image_url: (value) => {
+                dispatch('core/editor').editPost({meta: {featured_image_url: value}})
+            }
+        }
+    }
+)(PluginMetaFields_featured_image_url);
+
 PluginMetaFields_desc = withDispatch(
     (dispatch) => {
         return {
@@ -93,6 +130,7 @@ registerPlugin( 'dw-sidebar', {
                     title={__('Post Meta', 'textdomain')}
                 >
                     <PluginMetaFields />
+                    <PluginMetaFields_featured_image_url />
                     <PluginMetaFields_desc />
                 </PluginSidebar>
             </>

Some files were not shown because too many files changed in this diff