Php 如何在wordpress中导入插件的自定义字段
我已经安装了pluginYoast SEO Premium, 有了这个插件就有了一些字段Php 如何在wordpress中导入插件的自定义字段,php,wordpress,Php,Wordpress,我已经安装了pluginYoast SEO Premium, 有了这个插件就有了一些字段 yoast_wpseo_metadesc,yoast_wpseo_focuskw 但我无法添加,尽管我使用了: add_post_meta($post_id, 'yoast_wpseo_metadesc',$my_post['post_excerpt']); 这个问题可能是由几个问题引起的,以下是一些想法: 在元键前面加“\u0” Yoast SEO在数据库中为这些自定义字段条目加上前缀“u”。关键不是
yoast_wpseo_metadesc,yoast_wpseo_focuskw
但我无法添加,尽管我使用了:
add_post_meta($post_id, 'yoast_wpseo_metadesc',$my_post['post_excerpt']);
这个问题可能是由几个问题引起的,以下是一些想法: 在元键前面加“\u0” Yoast SEO在数据库中为这些自定义字段条目加上前缀“u”。关键不是“yoast_wpseo_metadesc”,而是“yoast_wpseo_metadesc”。和“yoast_wpseo_focuskw”一样,实际上是“yoast_wpseo_focuskw” 使用update_post_meta()而不是add_post_meta() Add_post_meta()可以为不存在的帖子创建自定义字段。如果它存在,它不会更新它。最好使用更灵活的update\u post\u meta()函数。如果自定义字段已存在,则将对其进行更新。否则,函数将调用add_post_meta()来创建它。 在您的情况下,可能已经存在具有该名称的字段 请注意执行代码的位置 我想我们需要更多关于在哪里启动add_post_meta()函数的信息。根据具体情况,方法有所不同。以下是一些例子: 在单页文章中 如果在您的单个页面上,您可以使用:
<?php
global $post;
update_post_meta( $post->ID, '_yoast_wpseo_metadesc', $post->post_excerpt );
update_post_meta( $post->ID, '_yoast_wpseo_focuskw', my_focus_keyword' );
?>
非常感谢,我尝试了带有“u”的前缀元键,非常好,很管用
<?php
// Launch the update_post_meta on post saving.
add_action( 'save_post', 'my_yoast_saved_datas' );
function my_yoast_saved_datas( $post_id, $post ) {
// Check that your post is what you want
if ( $_POST['post_type'] == 'post' ) {
// Check if user can't do that
if ( ! current_user_can( 'edit_post', $post_id ) )
return;
}
update_post_meta( $post_id, '_yoast_wpseo_metadesc', $post->post_excerpt );
update_post_meta( $post_id, '_yoast_wpseo_focuskw', 'my_focus_keyword');
}
?>
<?php
global $post;
// Array of args, change to your need
$args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'post_status'=> 'publish' );
// Get alls posts
$my_posts = get_posts( $args );
// Loop on post
foreach ( $myposts as $post ) {
setup_postdata( $post );
global $post;
// Update on create custom fields
update_post_meta( $post->ID, '_yoast_wpseo_metadesc', $post->post_excerpt );
update_post_meta( $post->ID, '_yoast_wpseo_focuskw', 'my_focus_keyword');
}
wp_reset_postdata();
?>