WP AlChemy MediaAccess在WP编辑器中插入媒体链接,而不是在Metabox中插入自定义字段

时间:2015-02-03 作者:Renato Gomes

我目前正在使用WPAlchemy类以自定义post类型(更准确地说,是来自EventEspresso插件的事件)创建元盒。

此元数据库应该能够调用媒体上载程序并插入一些自定义元的图像。

它工作得很好,我可以调用媒体上传程序并保存来自文本字段的数据。但是,打开媒体上载程序后,选择图像并单击“插入到帖子”。图像链接转到WP编辑器文本区域,而不是自定义元框中的我的文本字段。

谢谢各位。希望它足够清楚,并为可能不是很好的书面英语抱歉。

2 个回复
最合适的回答,由SO网友:Renato Gomes 整理而成

我设法解决了它。问题在于将自定义post类型与Metabox一起使用。php/MediaAccess。php(均来自WPAlchemy类)

假设您可以将自定义post类型与WPAlchemy一起使用,因为在实例化WPAlchemy\\u MetaBox对象时,您可以传递一些可选参数来启用这种costumization。像这样:

$mb = $my_custom_metabox = new WPAlchemy_MetaBox(array
(
    \'id\' => \'_palestrantes_metabox\',
    \'title\' => \'Palestrantes\',
    \'types\' => array(\'post\',\'espresso_events\'),
    \'template\' => get_stylesheet_directory() . \'/metaboxes/custom-meta.php\'
));
但在MetaBox中。php中,函数init使用一些验证代码来继续:

559   // must be creating or editing a post or page
560   if ( ! WPAlchemy_MetaBox::_is_post() AND ! WPAlchemy_MetaBox::_is_page()) return;
这两个函数都以调用

static function _get_current_post_type()
{
    $uri = isset($_SERVER[\'REQUEST_URI\']) ? $_SERVER[\'REQUEST_URI\'] : NULL ;
    if ( isset( $uri ) ) {
        $uri_parts = parse_url($uri);
        $file = basename($uri_parts[\'path\']);

        if ($uri AND in_array($file, array(\'post.php\', \'post-new.php\'))) {
            $post_id = WPAlchemy_MetaBox::_get_post_id();

            $post_type = isset($_GET[\'post_type\']) ? $_GET[\'post_type\'] : NULL ;

            $post_type = $post_id ? get_post_type($post_id) : $post_type ;

            if (isset($post_type)) {
                return $post_type;
            }
            else {
                // because of the \'post.php\' and \'post-new.php\' checks above, we can default to \'post\'
                return \'post\';
            }
        }
    }
    return NULL;
}
这里的问题是通过URI进行验证,它假设每个帖子或页面都会有“post”。php“或”发布新内容。php的URI。在我的情况下,结果是:

/wp管理员/管理员。php?页码=浓缩咖啡活动(&P);消息=1(&M);操作=编辑(&A);post=1750和;编辑\\u nonce=2de45bf97b&;return=编辑帖子

所以要解决它(顺便说一句,这并不值得骄傲)。我不得不在这两个代谢箱中添加另一个验证。php/MediaAccess。php也允许在“page=espresso\\u events”和“action=edit”时执行

嗯,就是这样。希望有帮助。谢谢

SO网友:Samec Hadra

以下修复对我非常有效:

打开MediaAccess。php并替换第368行:

旧线条:

$(\'[class*="<?php echo $this->button_class_name; ?>"]\').on(\'click\', function()
新代码行:

$(\'body\').on(\'click\', \'[class*=<?php echo $this->button_class_name; ?>]\', function()
在此链接中找到的解决方案:https://github.com/maniaks/wpalchemy/commit/9e55cd9c3071b57b83ff1e8bc86564478d2eb873

结束

相关推荐

Metaboxes-为什么它们不能以预期的方式呈现php?

在一个教程之后,我正在玩metaboxes。我可以添加任何代码,并将其显示在metabox中。我试着回应一些东西,没关系。然后我想设置一个选择表单来存储用户的选择。 <form name=\"ss_on_off_form_submit\" method=\"post\" action=\"\"> <input type=\"hidden\" name=\"ss_on_off_form_submit\" value=\"Y\"> <select