自定义字段与单独表格

时间:2013-01-14 作者:maiorano84

我有一个客户,他希望能够使用存储在CSV文件中的信息上传帖子。我已经把这部分做好了。

就在最近,我将CSV文件上传器从纯PHP改为AJAX上传器,以消除服务器超时,并提供一个很好的界面来跟踪每个新帖子的进度。

问题是:

每个自定义帖子总共包含大约130个自定义字段。我的每一个CSV上传测试都包含大约20篇新帖子。即使启用了async,处理每个新帖子仍然需要一点时间。

所有自定义字段都分为5个单独的元框。最初,我将其设置为将每个元框存储为JSON编码的字符串,并将其保存为帖子元数据的一部分。这使自定义字段的总数从130个增加到了5个,并且写入时间大大增加。

然而,这样做的缺点是,Wordpress的标准不再能够搜索每个单独的自定义字段。

建议的解决方案:

我可以做以下几件事之一:

我可以保持原样,在保留可搜索和可查询元数据的同时缩短写入时间,但可能会遇到包含数百篇或数千篇帖子的CSV文件的问题

就我个人而言,我尽量避免不惜一切代价向Wordpress安装中写入任何新表。但这会被视为一种需要这样做的情况吗?或者,如果我使用自己不太复杂的查询来修复一个甚至不一定是问题的问题,我会失去太多功能吗?

最重要的是,有没有其他我可能遗漏的方法可以解决这个问题?

UPDATE:
为了在不违反我的保密协议的情况下澄清数据的含义,每个自定义帖子都是一把吉他。

每个元框表示吉他的一个部分(颈部、主体等),每个自定义字段是属于该特定部分(木材、制造商等)的固定信息。

class Guitar
{
    public $ID;
    public $Year;
    public $Make;
    public $Model;

    public $Section1;
    public $Section2;
    public $Section3;
    public $Section4;
    public $Section5;
    public $Section6;
    public $Section7;
    public $General;

    private $_data;
    private static $_dataFlags = array(\'Section1\', \'Section2\', \'Section3\', \'Section4\', \'Section5\', \'Section6\', \'Section7\', \'General\');
    public function __construct($args)
    {
        $this->ID = $this->_query_existing();
        foreach(self::$_dataFlags as $sec)
            $this->$sec = new $sec($args[$sec]);
    }
}
abstract class Guitar_Section
{
    public function __construct($arr=array())
    {
            if(!empty($arr))
            $this->_set_props($arr); //Set Properties
    }
    public function update_meta($id, $useprops=false)
    {
        foreach(get_object_vars($this) as $k=>$v)
        {
            $this->$k = !$useprops ? $_POST[\'guitar_\'.$this->_get_section_name().\'_\'.$k] : $v;
            update_post_meta($id, \'_guitar_\'.$this->_get_section_name().\'_\'.$k, $this->$k);
        }
    }
}
class Section1 extends Guitar_Section
{
    public $Wood;
    public $Attachment;
    public $etc;

    protected function _get_section_name()
    {
        return \'Section1\';
    }
}
这将显示每个类如何协同工作。我有它,所以每个吉他部分都由吉他类封装,每个部分都扩展了抽象类。每个属性都是一个自定义字段,并使用抽象类中的方法进行设置,而Guitar类基本上查询Wordpress并设置任何可用的ID、年份、品牌和型号。

由于CSV文件用于设置类及其属性,因此大多数操作都需要大量的字符串操作。

1 个回复
SO网友:Chief Alchemist

我希望这2美分不是太相切,但其中一些不能/不应该是分类法?我不确定这是否有很大帮助,但在我看来,某些属性有一个相当固定的值集,能够单击其中一个属性将是可取的。

再一次,请原谅我没有直接攻击这个问题,但也许我刚才分享的这2美分有一些价值:)

结束

相关推荐

Search URL parameters query

Possible Duplicate:Custom search form with empty parameters 希望这是一个快速的过程,但我遇到了麻烦。我有多个搜索词,关键字,类别,国家和日期。我将其设置为用户不必搜索所有这些过滤器。我可以省略类别和/或日期,它将显示更松散的结果。但如果我离开国家,它不会显示任何结果,对任何其他参数执行相同的操作仍会显示结果。问题只在于国家。/?s=a&cat=41&country=&monthnum=&year= 不产生结果,但