Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数在WordPress中生成多个元数据库_Php_Arrays_Wordpress_Function_Foreach - Fatal编程技术网

Php 函数在WordPress中生成多个元数据库

Php 函数在WordPress中生成多个元数据库,php,arrays,wordpress,function,foreach,Php,Arrays,Wordpress,Function,Foreach,我已经成功地使用以下代码为WordPress帖子类型创建了一个自定义元数据库: function bandcamp_metabox(){ $posttypes = Array( 'discos', 'Projetos' ); add_meta_box('bandcamp_link', 'bandcamp link', 'bandcamp_link_meta_callback', $posttypes, 'side'); } function bandcamp_link_meta

我已经成功地使用以下代码为WordPress帖子类型创建了一个自定义元数据库:

function bandcamp_metabox(){
$posttypes = Array(
    'discos',
    'Projetos'
);
add_meta_box('bandcamp_link', 'bandcamp link', 'bandcamp_link_meta_callback', $posttypes, 'side');
}

function bandcamp_link_meta_callback( $post ) {
wp_nonce_field('save_bandcamp_link', 'bancamp_meta_box_nonce');

$value = get_post_meta($post->ID,'_bandcamp_link_value_key', true);

echo '<label for="bancamp_link_field">';
echo '<input type="url" id="bancamp_link_field" name="bancamp_link_field" value="' . esc_attr ( $value ) . '" size="25" />';
}

function save_bandcamp_link ( $post_id ) {

if( ! isset( $_POST['bancamp_meta_box_nonce'] ) ){
    return;
}
if ( ! wp_verify_nonce( $_POST['bancamp_meta_box_nonce'], 'save_bandcamp_link' ) ){
    return;
}
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
    return;
}
if( ! current_user_can( 'edit_post', $post_id ) ){
    return;
}

if( ! isset( $_POST['bancamp_link_field'] ) ) {
    return;
}

$bandcamp_link =  sanitize_text_field( $_POST['bancamp_link_field'] );

update_post_meta($post_id, '_bandcamp_link_value_key', $bandcamp_link);
}

add_action('add_meta_boxes', 'bandcamp_metabox');

add_action('save_post', 'save_bandcamp_link');
我还是希望通过“foreach”函数,我能够重复使用代码一次创建多个元数据库,如下所示:

$varsocial = Array(
'bandcamp',
'soundcloud',
'facebook',
'instagram',);

foreach($varsocial as $sociallink) {

function social_metabox(){
$posttypes = Array(
    'discos',
    'Projetos');

add_meta_box(''. $sociallink .'_link', ''. $sociallink .' link', 'social_link_meta_callback', $posttypes, 'side');
}

function social_link_meta_callback( $post ) {
wp_nonce_field('save_social_link', 'social_meta_box_nonce');

$value = get_post_meta($post->ID,'_'. $sociallink .'_link_value_key', true);

echo '<label for="'. $sociallink .'_link_field">';
echo '<input type="url" id="'. $sociallink .'_link_field" name="'. $sociallink .'_link_field" value="' . esc_attr ( $value ) . '" size="25" />';
}

function save_social_link ( $post_id ) {

if( ! isset( $_POST['social_meta_box_nonce'] ) ){
    return;
}
if ( ! wp_verify_nonce( $_POST['social_meta_box_nonce'], 'save_social_link' ) ){
    return;
}
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
    return;
}
if( ! current_user_can( 'edit_post', $post_id ) ){
    return;
}

if( ! isset( $_POST[''. $sociallink .'_link_field'] ) ) {
    return;
}

$social_link =  sanitize_text_field( $_POST[''. $sociallink .'_link_field'] );

update_post_meta($post_id, '_'. $sociallink .'_link_value_key', $social_link);}

return add_action('add_meta_boxes', 'social_metabox');
return add_action('save_post', 'save_social_link');
}
但这样做是行不通的。我做错了什么