Questions tagged «customization»

修改主题和插件文件以创建新功能。

3
回归测试WordPress网站的最佳做法?
大家好, 我想听听其他人以WordPress为平台向客户提供复杂的非博客解决方案的情况,他们正在使用什么进行自动回归测试? 对于那些不熟悉术语“回归测试”的人, Wikipedia将其定义为: 回归测试是任何类型的软件测试,其旨在通过重新测试程序来在对程序进行更改(例如,错误修正或新功能)后发现软件错误。回归测试的目的是确保更改(例如错误修正)不会引入新的错误。 更有说服力的Wikipedia指出以下内容正是我目前在一个项目上所经历的: 经验表明,随着软件的修复,新故障的出现和/或旧故障的再次出现是很普遍的。有时会出现重新出现的情况,因为修订是由于不良的修订控制实践(或修订控制中简单的人为错误)而丢失的。通常,解决问题的方法是“脆弱的”,因为它可以在首次发现问题的狭窄情况下解决问题,而在软件的整个生命周期内可能会出现的更一般情况下,则无法解决问题。通常,对一个区域中的问题的修复无意间导致了另一区域中的软件错误。最后,通常情况是,当重新设计某些功能时,在重新设计中会犯一些与该功能的原始实现相同的错误。 有了动作和过滤器的全局性,我发现随着我添加更多客户端请求的功能,复杂性开始增加,并且很难获得稳定的复杂插件,尤其是当它使用大量的调用WP_Query和更新数据库的情况时。 我认为解决方案是使用一系列“测试用例”设置回归测试以构成“测试套件”。从概念上讲,测试HTTP GET请求的HTML输出并不难。但是,当您必须通过管理控制台登录和/或测试jQuery交互时必须进行测试时,情况变得有些复杂。 我将其设置为社区Wiki,希望我们可以在此处收集最佳实践,但如果有其他WordPress专业人员正在使用,我真的很想听听流程。

2
在插件中包含内联CSS可以吗?
通常在插件中,我会使用wp_enqueue_style添加样式。但是,我当前正在创建一个只需要几行CSS的插件,并且我想知道内联样式以保存请求是否更好。显然,使用wp_enqueue_style有很多优点,但是对于这样一小段CSS,是否值得额外要求?在这方面是否有公认的“最佳实践”?

3
我如何最好地处理自定义插件页面操作?
我经常遇到同样的烦恼,所以我想看看是否有任何想法或经验。 我创建了一个使用其自己的管理页面的插件。它必须。现在,我整理出了WP_List_Table()的内容,我必须说这很棒...但是... 自定义插件页面始终加载,admin.php?page=...除非我不希望直接从插件目录加载它们。现在,如果我从该页面执行“操作”,则需要以某种方式进行处理,然后将其重定向回该页面而不使用action参数。真的,不管我执行GET还是POST。 WP在所有内部页面上都在同一页面上执行此操作,它检查是否有动作,如果有,则对其进行处理,然后在没有动作的情况下重定向到自身。这是可能的,因为admin-header尚未在这些页面上加载。 但是,如果您尝试在自己的页面上执行此操作,则一半的管理界面已发送到浏览器,因此无法再进行重定向。显然,解决方案是直接POST / GET到另一个页面,在该页面上加载WP框架,进行处理,然后重定向回原始页面...但是...有点烦人,因为...我的原始页面是通过回调加载的,因此它在我的类的方法中运行。那好美丽。 如果我加载一个单独的页面,则必须手动添加wp-load.php并且不在类的范围内,这很烦人,在我的情况下,这尤其会困扰我,因为我只是匿名实例化了我的插件类,因此没有人可以访问它从外部。 因此,经过漫长的故事之后...有人提出了一个很好的解决方案来通过回调加载另一个页面而又没有设置整个管理界面吗? (我知道一种解决方法...我可以将一个函数挂接到其中load-....,以检查action参数,然后进行处理和重定向。但是我想知道是否有更好的方法。) 谢谢。

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

1
如何为我的插件创建API?
我一直在为WordPress开发插件,我开发的大多数插件使用两到三个类,因此不如Buddypress或WooCommerce大。 我计划开发两个开源插件来交付某种复杂的系统(目前无法共享详细信息,但稍后在开发过程中),其他开发人员可以自定义功能,并且其系统必须与Bud​​dypress和WooCommerce相同。 当我检查这些插件文件并意识到它们已经注册了自己的操作和过滤器时,开发人员可以根据需要进行修改。但是,我的问题是无法完全理解,我该如何编写一个插件,让其他人可以灵活地覆盖功能以及添加自己的功能。 我知道很难给出确切的答案,但是我需要某种入门指南,以便朝正确的方向前进。我需要注册自己的操作和过滤器吗?如果是,怎么办?如果不是的话,我有什么选择? 您的建议将对我有很大帮助。

5
您如何使用CPT作为默认主页?
我有一个客户的网站,该网站将大量使用自定义帖子类型来配置其网站。但是对于他们要求的主页,我处于艰难和艰难的境地之间。 实际上,主页将是WordPress中特定“页面”的堆栈。基本上,将有以下页面:简介,博客,关于我们,投资组合和与我们联系。它们将全部堆叠在一起,因此您可以从一页滚动到另一页。 我的第一个本能是只使用一个页面(称为Home)并嵌入一个接受页面内容并输出正确顺序(即[pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder])的短代码。该页面将使用自定义页面模板来布置内容,控制循环并将导航添加到页面左侧。但这一切似乎都是k脚的。 我的理想解决方案是创建一个自定义帖子类型(称为Stack),该类型允许最终用户通过拖放操作定位页面,并让CPT负责布局和导航等工作。 我理想的解决方案的问题是设置。WordPress允许您为网站的默认主页选择页面。但这与页面的发布类型有关,我不确定在何处进行修改以使用户也可以选择Stack作为默认主页。 因此,为了添加CPT到默认主页的可用页面下拉菜单中,我该连接到哪里?

4
插件在符号链接目录中?
当我开发插件时,可以通过在不同wp-content目录中对我的插件目录进行符号链接来在多个版本的WordPress上测试它们。很棒,因为我只需要编辑一次文件,但是它破坏了在插件中生成对资源的引用的重要结构:__FILE__是指物理插件位置,而不是中的位置wp-content。我该如何解决? 我的目录结构如下所示: /path/to/wordpress/development/dir/ plugin-development/ monkeyman-rewrite-analyzer/ monkeyman-rewrite-analyzer.php js/ monkeyman-rewrite-analyzer.js versions/ 3.1/ wp-content/ plugins/ monkeyman-rewrite-analyzer 作为上述插件的符号链接 3.1-multi-dir/ wp-content/ plugins/ monkeyman-rewrite-analyzer 作为上述插件的符号链接 3.1-multi-domain/ wp-content/ plugins/ monkeyman-rewrite-analyzer 作为上述插件的符号链接 如果我想将Javascript文件放入队列,则应该使用plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] ),但是__FILE__在这里使用将不起作用,因为实际的文件路径将是/path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php,而不是/path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php,因此WordPress无法删除第一部分并生成相对于WordPress安装的URL。

3
map_meta_cap过滤器有什么用?
map_meta_cap过滤器有什么用?此过滤器未在任何地方记录。我对它可能是什么还不清楚: 用于将用户的权限映射到帖子的操作。 这到底是什么意思?如果可能,请提供一些正确用法的示例代码示例。

7
用什么SQL查询做一个简单的查找和替换
每当我创建一个新网站时,我都会首先在诸如“ stage.domain-name.com”之类的子域上创建一个临时站点。 一切正常后,我导出数据库,在notepad ++中打开它,并查找/替换“ subdomain.domain-name.com”,然后将其替换为“ domain-name.com” ...最后,我将其导入到新数据库中实时站点的数据库。 我的问题是...如果我只想使用phpmyadmin在整个数据库上执行此简单查找/替换操作,则需要运行什么SQL查询? -CH


1
电话亭?秀场?posts_per_page?
因此,食典上的文档非常清楚,不推荐使用showposts。但是,相同的文档中没有提到任何号码簿。而是列出posts_per_page。 但是,如果我们使用有关get_posts的Codex文档,则看不到posts_per_page的提及,而是引用了numberposts。 在post.php中,我们看到发生了什么:numberposts被设置为默认值(5),然后将其复制到posts_per_page(除非在args中设置了posts_per_page)。 所以我的问题确实很书呆子,但是我想更新Codex,所以我想问大家-是否有一个原因,我们不想全盘鼓励posts_per_page,最终弃用号码簿?还是我在这里缺少一些重要的见解?

9
WordPress的创造性使用[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 随着WordPress的发展,可以使用该技术制作越来越多的网站。页面和永久链接结构赋予CMS强大的功能,自定义分类法和帖子类型进一步扩展了此功能,以区分按时间顺序排列的帖子,页面和任意对象,而插件则填补了空白。 因此,您可以使用WP为博客,图片库和网站提供动力。您发现利用强大的WordPress功能有哪些更具创意的用途?有哪些网站让您说“ 那是 WordPress”?

2
如何在WordPress中放置日志
有什么办法可以像在Magento中一样在wordpress中记录任何内容。 我正在集成一个自定义插件,其中我在挂钩的帮助下添加了一些功能,因此我需要对其进行调试。在这种情况下,我需要是否可以在wordpress日志中输入任何文本或数据。 如果是这样,请让我知道将日志生成到wordpress的过程。

3
具有多个关系键的嵌套meta_query
我很好奇Wordpress是否可以嵌套运行meta_query,每个都有不同的关系键?从Wordpress 3.0开始,tax_query可以执行此功能;我想知道这是否与等效meta_query。 $results = query_posts( array( 'post_type' => 'event_id', 'meta_query' => array( 'relation' => 'AND', array( 'relation' => 'OR', array( 'key' => 'primary_user_id', 'value' => $user_id ), array( 'key' => 'secondary_user_id', 'value' => $user_id ) ), array( 'key' => 'date', 'value' => array( $start_date, $end_date ), 'type' => 'DATETIME', 'compare' …

2
本地化WordPress内容的最佳做法?
一位客户要求提供一个具有本地化内容的博客(例如,英语内容为en.blogname.com,法语内容为fr.blogname.com等)。对于构建这样的博客来说,这是新手,我们最近发现了WPML和qTranslate,它们非常适合我们的需求。 您是否有建立多语言博客的最佳/推荐做法? 在这一点上,我们并不认为需要翻译WordPress软件,但是如果您发现这是一个好主意,我们将很高兴知道。作者全部都是多语言的(英语+另一种语言),但是可以想象以后会聘用非英语的人。

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.