【问题标题】:Wordpress does not save Custom FieldWordpress 不保存自定义字段
【发布时间】:2018-02-28 09:10:02
【问题描述】:

我正在处理几个“分配”给自定义帖子类型的自定义字段。出于某种奇怪的原因,需要一遍又一遍地创建一个自定义字段。我似乎找不到将此特定自定义字段保存到我的 Wordpress 数据库中以供将来使用的解决方案。

自定义字段称为“video_url”。即使我将它重命名为“youtubelink”或任何 Wordpress 都不会保存它。任何其他新创建的自定义字段都由 Wordpress 保存,但不是必须保存 Youtube 链接的那个。

有什么想法吗?有什么东西可以“强制” WP 保留该自定义字段吗?

注意:我没有使用任何插件来创建自定义字段。

【问题讨论】:

  • 您是否使用 php 保存自定义字段?你能提供给我们你的代码吗?
  • 以下是我如何调用特定自定义帖子类型的结果 ''ID, 'video_url', TRUE))=='') ) { echo wp_oembed_get(get_post_meta($post->ID, "video_url", true) ); }?>'' 我基本上是想显示嵌入的 Youtube 视频

标签: wordpress custom-fields


【解决方案1】:

我认为您需要使用 php 函数在 phpmyadmin 中更新或执行此 sql

update `<your_prefix>_postmeta` pm set pm.meta_key = 'youtubelink' where  pm.meta_key = 'video_url'

如果您使用 $wpdb,您可以将此代码添加到主题中的 function.php 中

global $wpdb;
 echo $sql = "update `{$wpdb->prefix}postmeta` pm set pm.meta_key = 'youtubelink' where  pm.meta_key = 'video_url'";
$wpdb->query($sql);
exit;

我添加了退出以确保执行此代码。您重新加载页面以运行此脚本,然后对其进行评论以进行检查。如果没有更新,请使用此代码

global $wpdb,$prefix;
     echo $sql = "update `{$prefix}postmeta` pm set pm.meta_key = 'youtubelink' where  pm.meta_key = 'video_url'";
    $wpdb->query($sql);
    exit;

这是旧 wordpress 版本中使用的代码。您重新加载页面以运行脚本,注释代码以再次检查...

【讨论】:

  • 您需要在 phpMyadmin 或 function.php 文件中的任何位置运行此脚本。你可以运行一次
  • 所以我只是将这个粘贴到我的functions.php中?更新&lt;your_prefix&gt;_postmeta pm set pm.meta_key = 'youtubelink' where pm.meta_key = 'video_url'
  • 不,您必须将它与 $wpdb 一起使用
  • 对不起,我在这方面的技能非常有限。但基本上像这个函数 someFunction() { global $wpdb;更新 _postmeta pm set pm.meta_key = 'youtubelink' where pm.meta_key = 'video_url' } 然后我可以再次将其从 functions.php 中删除?
  • 将此代码插入我的function.php global $wpdb; echo $sql = "更新{$wpdb-&gt;prefix}postmeta pm set pm.meta_key = 'youtubelink' where pm.meta_key = 'video_url'"; $wpdb->查询($sql);出口;只显示网站更新的以下 onload wp_postmeta pm set pm.meta_key = 'youtubelink' where pm.meta_key = 'video_url'
【解决方案2】:

我通过在 functions.php 中增加 Post Meta 解决了这个问题

Wordpress 似乎有一个 postmeta 限制 @ 30。使用下面的函数,您可以将其增加到更高的值。

像老板一样工作

/* Increase Postmeta Limit.*/

add_filter( 'postmeta_form_limit', function( $limit ) {
    return 100;
} );

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 2011-06-16
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多