Questions tagged «database»

WordPress将用户生成的内容以及其他可配置信息存储在数据库中(通常为MySQL)。


5
MySQL数据库用户:需要哪些特权?
WordPress的简短安装说明(“ 5分钟”)指出: 在您的Web服务器上为WordPress创建一个数据库,并为拥有访问和修改它的所有特权的MySQL用户创建数据库。 在专业设置新博客的同时,我想知道它如何映射到MySQL数据库用户特权/权限配置所提供的功能: 数据: SELECT,INSERT,UPDATE,DELETE 定义: CREATE,ALTER,DROP 额外: INDEX 更多: LOCK TABLES REFERENCES CREATE TEMPORARY TABLES CREATE VIEW SHOW VIEW CREATE ROUTINE EXECUTE ALTER ROUTINE 我很确定前三个组的名称是Data,Definition和Extra。但是“ 更多”条目下面的其他内容呢?通常,我会说这些不是必需的,但是我想得到第二个意见。

5
为什么我的数据库导入丢失了文本小部件数据?
我已经在我们的开发机器上用WordPress创建了一个站点。在主题中,我们使用了许多小部件区域来显示文本(侧栏和首页)。我在所有这些区域中都使用了简单的Text小部件来放置我们的显示信息。 将站点迁移到生产环境时,我使用WP-DB-Backup插件对数据库进行快照。然后,我编辑了生成的.sql文件,以更新所有文件路径和URL引用以指向我们的生产站点。 创建数据库,网站并将所有文件复制到生产站点之后,我从mysql命令提示符下运行.sql文件,以将数据导入新数据库。 但是,当我转到生产站点时,会显示一些文本,而有些则没有。当我查看站点的窗口小部件部分时,某些窗口小部件区域中缺少文本窗口小部件。文本窗口小部件甚至在“非活动窗口小部件”区域中都不可见,它们根本不在那儿。 我什至尝试使用BackWPup插件重复该过程,并注意到在转储数据库时SQL语法是不同的。 为什么在导入期间丢失文本小部件数据?
46 database  mysql  import 

1
我应该使用自定义帖子类型还是自定义数据库表进行插件开发?
我对编写wordpress插件还很陌生,但是我已经涉足了深层次的工作,我想确保自己在即将进行的大型项目中做得对。 我将大量地将wordpress扩展到一个相当大的Web应用程序中,并希望保持我的数据结构尽可能本地化,以依靠wordpress框架,但是我不知道创建自己的自定义数据库表是否更好或尝试使用自定义帖子类型。 我尚不知道我的所有数据,但是将有许多表(或cpt)被关联起来。我从研究中得出的“氛围”是,我应该避免使用自定义数据库表,但是我不确定如何确定最佳解决方案。 我特别关心三个方面: 如果我走这条路线,每个cpt我需要为我的额外字段分配的发布元字段的数量,如果这样做会使事情“棘手” 使用半复杂的关系过滤器获取报告的查询效率如何 如何最好地管理人际关系,尤其是当我有很多对许多人际关系时 有没有“正确”的方法?感谢您的输入。

4
开发/阶段与生产之间的数据库同步
我对开发和生产之间的WordPress数据库同步有问题,我想知道其他人如何解决它。我知道这个问题,但它并没有真正涵盖更原始和更实际的用例。 假设我有一个在线WordPress网站。我将所有内容都转储了下来,并将其复制到我们的开发环境中。我开始进行更改。1周后,我准备部署更新。同时,生产站点上的数据库已更改(新帖子,新评论等)。在发布期间,如何在生产和开发之间同步更改,是否可以(至少一定程度上)自动化该过程?

3
使用git使WP数据库在多个开发人员之间保持同步
我正在改进适用于WordPress开发项目的git工作流。通常,在开发内容管理系统时,我会创建一个开发服务器(如http://dev.finalsitename.com),其中包含将在生产版本中使用的自定义帖子类型和分类法。这样,我的客户就可以开始将其内容添加到该站点。 当他们执行此任务时,我通常会构建外观和感觉以及将在我的本地主机环境中使用的自定义编程/插件。为了确保不覆盖他们的任何更新,通常我会拉下他们数据库的副本并替换我的数据库。但是,有时候我只需要跳到WP管理区域并更改设置或其他一些小的内容... 如果有多个开发人员在进行WordPress项目,则我们每个人都会对网站的版本进行(时间戳记)数据库转储,并将其包含在根目录中,然后再提交并将其本地分支推回远程存储库。这种方法的麻烦在于,数据库通常不同步,无法轻松确定要使用的数据库。 其他开发人员在保持数据库同步同时又允许多个开发人员(和客户/内容生产者)从事同一个项目时又做了什么?


1
WordPress何时清除数据库中的“ post_content_filtered”列?
一些WordPress插件(尽管很少)使用post_content_filtered数据库中的列来保存与帖子相关的一些数据。 例如,保存时的Markdown在post_content_formatted列中分别存储帖子的Markdown版本,在列中存储已解析的HTML post_content,因此,在停用插件时,帖子不会喷出Markdown(因为HTML存储在中post_content)。 现在,我开始意识到这post_content_filtered几乎是用于临时存储的,即在以下情况下,列中的内容会丢失(或清除): 您可以使用“快速编辑”选项对帖子(标题,标签,类别等)进行更改 预定的帖子(自动)发布 您对帖子进行批量编辑 您可以在帖子的修订之间切换 从外部编辑器(即不是WordPress帖子编辑器)保存帖子 问题: 在其他情况下,该post_content_filtered列中的数据是否被清除? 有没有办法完全防止这种情况发生?(我的意思是,有没有办法确保数据被永久存储,即post_content列的处理方式?)

5
发布元数据表与单独的数据库表
在开发需要数据存储的插件时,使用一种或另一种方法的优缺点是什么? 抄本中给出的解释不详细: 但是,在使用全新表之前,请考虑将插件的数据存储在WordPress的Post Meta(也称为“自定义字段”)中是否可行。Post Meta是首选方法;尽可能/实际使用它。

3
多个开发人员/编辑人员正在一个网站上工作
背景 我正在建设第一个相当大的WordPress网站的最后阶段,现在遇到了一些磨擦。在大多数情况下,该站点是在我的本地计算机上开发的,我会将更改推送到登台服务器上进行审查(有关更多背景,请参阅此问题)。我最终得到的解决方案在仅编辑内容时效果很好,但是现在其他人正在编辑内容,而我仍然需要添加功能。我们的想法是:如果功能和内容协调一致,我们可以更快地完成工作……但是现在我不确定。 当前,登台服务器上的数据库中的内容与本地计算机上的内容不同。本身就很好,因为我不需要本地计算机上的最终主体副本,但是我需要做更多的开发工作,这会影响数据库(安装/编写更多需要各自表的插件)。 我的问题是: 有没有一种简单的方法可以自动合并数据库,以便多个人可以进行WordPress安装?我当然可以,只是出口我的表知道我的本地机器上已经改变,他们推到临时服务器,但它可能也有临时服务器上的东西,我想搞垮。我可以获取两个DB的SQL输出并将它们进行比较...但是,这似乎很乏味和骇人。我想知道这是否是其他人已经解决的问题;如果有一种社区认可的方式来处理这种事情。 谢谢!

3
WPDB插入或如果存在更新
总的来说,我对WPDB或SQL并不陌生,但是我有一个用于项目的自定义表,并且正在尝试为其分配一些元数据。我想“发生”的事情是如果存在一行,请对其进行更新,如果不插入该行。我已经阅读了WPDB Codex中的插入和更新,但是没有一个真正陷入“非此即彼”的境地。我以为我可以进行更新,所以到目前为止我的代码如下: $wpdb->update( $wpdb->prepare( $wpdb->prefix.'item_info', array( 'post_id' => $post_id, 'item_stock' => $item_stock ), array('post_id' => $post_id) ) ); WordPress是否具有诸如“如果存在更新,ELSE插入”之类的东西,或者我需要运行自定义SQL来实现此目的,还是需要首先查询数据库以查看表中是否存在ID,然后决定是否更新还是插入?
21 database  wpdb  sql 

3
如何在模板中显示重力形式的数据?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为WordPress Development Stack Exchange 的主题。 5年前关闭。 前言 我已经安装了重力表单,创建了表单,并且用户正在向我的站点提交数据。我要做的是在我的页面之一上显示用户提交到我的网站的数据。 我知道这里有Gravity Forms Directory插件。但这仅给出了固定的数据表示。 题 有重力形式的东西可以做这样的事情吗?(伪代码): <?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>

1
如何在开发副本上对站点进行更新,然后又不覆盖实时站点的不断发展的数据库而将更新移回?
我试图在标题中尽可能地描述性,并且我知道这个问题以前曾以各种形式提出过,但是我找不到很好的答案,并且可以想象没有人解决这个问题。 很简单,一个WP网站一旦启用,如果它不是一个静态网站,则它将通过添加新帖子,新woocommerce订单,新用户帐户等来不断更新其数据库。 如果要对站点进行一些重大更改和更新,最简单易行的方法是将副本复制到本地安装或另一个开发域中,然后在其中进行所有更改。完成所有更改后,我想将它们复制回实时站点。 如果更改仅针对文件(例如主题和CSS),则有些简单。但是,如果更改涉及数据库的更改,例如添加新的插件以及添加连接/与这些插件相关的内容,那么我不再只能将站点复制回去,因为它将覆盖已添加到实时中的任何新更改。网站的数据库。所有新帖子,新订单,新图片上传都将被删除。 现在,我知道不同的案例场景有不同的解决方案,但是没有解决所有案例的方法吗? 例如,如果对实时站点所做的唯一更改是新帖子,那么我可以将这些帖子导出和导入到开发站点,然后将整个站点移到新站点。与其他一些项目相同,但不是每种项目。与此相关的另一个问题是,wordpress中的导出和导入功能非常糟糕。它太基本了,您几乎没有选择和仅导出特定项目的选项。我可能已经尝试了每个“高级导入/导出”插件,但还没有什么可以解决这个问题。 因此,在另一个主题中,有人指出此插件可以在现场站点上基本安装主题并在其中工作,而普通用户仍然可以看到现有主题,但是仍不能解决所有类型的更改。因为如果您要更改内容(例如,页脚或导航菜单),那么这些内容仍会反映在现有的可见主题/网站中,并且在新的测试主题上看起来可能不错,但在实时主题上却没问题。 没有办法在同一站点/数据库上开发站点的“分支”然后切换吗?还是没有办法在开发站点上进行开发,但实际上是以无损方式合并数据库?如果您知道受影响的组件和事物,是否没有办法做到这一点?否则您需要成为MySQL大师才能尝试这种事情。 我不是唯一一个有这个难题的人。我无法想象这个问题没有解决方案。如何才能做到这一点? 提前致谢。


1
我如何信任switch_to_blog()?
当我switch_to_blog()使用博客ID 打电话时,我不知道该博客是否确实存在。该函数始终返回TRUE。 测试用例: switch_to_blog( PHP_INT_MAX ); $post = get_post( 1 ); restore_current_blog(); 这将导致数据库错误显示给用户。我该如何预防? 现实世界中的用例 我是Multilingual Press的首席开发人员。用户翻译帖子时,会看到如下屏幕: 现在可能发生以下情况: 她成功保存了帖子,并继续翻译帖子。 另一个用户(网络管理员)在写作时会删除德语博客。 她再次点击保存并获得数据库错误。 我想避免这种情况。如何快速检查目标博客是否存在?我switch_to_blog()经常在多个不同的班级中打电话,因此必须快速。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.