有没有办法在添加到链接时保存元框值?这是我的代码:
<?php
/*
Plugin Name: Link Date
Plugin URI: http://
Description: Adds links date field.
Version: None
Author: Auth
Author URI: http://
*/
add_action( 'add_meta_boxes', 'link_date_add' );
function link_date_add()
{
add_meta_box( 'link-date-meta-box', 'Link Date', 'link_date', 'link', 'normal', 'high' );
}
function link_date( $post )
{
$values = get_post_custom( $post->ID );
$date = isset( $values['link_date_text'] ) ? esc_attr( $values['link_date_text'][0] ) : '';
wp_nonce_field( 'my_link_date_nonce', 'link_date_nonce' );
var_dump($post);
?>
<p>
<label for="link_date_text">Link Date</label>
<input type="text" name="link_date_text" id="link_date_text" value="<?php echo $date; ?>" />
</p>
<?php
}
add_action( 'save_post', 'link_date_save' );
function link_date_save( $post_id )
{
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if( !isset( $_POST['link_date_nonce'] ) || !wp_verify_nonce( $_POST['link_date_nonce'], 'my_link_date_nonce' ) ) return;
if( !current_user_can( 'edit_post' ) ) return;
$allowed = array(
'a' => array(
'href' => array() // and those anchords can only have href attribute
)
);
if( isset( $_POST['link_date_text'] ) )
update_post_meta( $post_id, 'link_date_text', wp_kses( $_POST['link_date_text'], $allowed ) );
}
?>
当帖子类型更改为“帖子”时,此代码有效,但由于某种原因,它不会将数据保存为“链接”类型的帖子。
当帖子类型设置为“帖子”时,我从该字段中保存了一些数据,然后将代码中的帖子类型更新为“链接”,并另外更新了数据库(wp_postmeta),将 id 替换为链接的 id。然后此数据显示在链接的元框中,但机器人仍然能够更新此元框的值。