WordPress

WordPress开发人员和管理员的问答

1
wp-cli 0.14.1 MySQL错误
我今天刚刚更新到wp-cli 0.14.1,再次遇到MySQL问题。我在Windows,Wampserver和Cygwin上。 当我第一次更新到上一个修订版(0.14.0)时,我遇到了类似的问题,并且在github讨论中发现并使用了信息,这很可能是由于php.ini中的“ variables_order”所致。我在ini文件中对此进行了注释,以强制使用EGPCS而不是GPCS的默认值。这样就好了。在下一个版本中提到了修复此问题的方法。 现在,我已经更新到0.14.1,并且在尝试运行“ wp core config ....”以创建wp-config.php文件时,出现命令行错误 MYSQL_PWD is not recognized as an internal or external command. 我回到github线程,看到scribu确实进行了讨论。我按了指向它的链接,以查看它是否会发光。我在第328行看到了更改,但是不知道我现在应该尝试什么,因为更改似乎正在导致我的问题。 仅供参考:我从DOS或Cygwin命令行使用mysql没问题,它们都引用相同的可执行文件,并且可以正常工作。完美无瑕。 任何帮助,将不胜感激。 2014年3月8日更新 注意:(1)我不关心公开用户名或密码,因为它们是临时的,并且位于我的一台本地计算机上。(2)在此调试会话中,您将看到我正在使用phar文件。使用bin文件夹中的“已安装”版本“ wp”会发生完全相同的情况。 这是PHPStorm中的调试会话,我从此wp-cli命令开始: Boss@Bonkers /cygdrive/c/wamp/www/wpsandbox $ ../wp-cli-0.14.1.phar core config --dbhost=127.0.0.1 --dbname=wpsandbox --dbuser=root --dbpass=Bonkers --dbprefix=sndbx_ utils.php中的断点设置为第331行: $final_cmd = $cmd . assoc_args_to_str( $assoc_args ); 这将创建最终命令,并移至第333行以执行: $proc = proc_open( $final_cmd, …
8 wp-cli 

2
将域映射到永久链接(非多站点)
我正在尝试在独立的WP安装(不是多站点)上执行此操作。我想要实现的是: 用户保存domain.com在usermeta上。(完成) 用户创建一个新的CPT,例如company。默认情况下可通过访问(默认为original.com/company/example-company完成) 我需要用户创建的所有帖子也可以通过设置domain.com/company/example-companyusermeta时才可用domain。 我知道DNS和域应该指向当前的WP安装(无关),但不确定如何将域映射到永久链接。 算法应该是这样的 检查是否显示companyCPT单页。 检查作者是否设置了域。 如果domain设置,则修改永久链接。

2
在自定义帖子类型上向存档和分类页面添加内容?
我有一个名为“产品”的自定义帖子类型和一个名为“用法”的分类法。在我的“产品”着陆页上,我希望有可以由客户通过所见即所得进行编辑的自定义内容。分类登陆页面也是如此。我的想法是创建伪造的Pages,然后通过ID将内容提取到我的archive-products.php和taxonomy-usage.php模板中,但是我很好奇是否有更好的处理方法。

1
弃用插件类中的函数
我正在更新我的一个插件,但对过时的功能有些犹豫。 最初,我的插件具有全局变量,并且插件的主类已实例化并存储在全局变量中。这样,用户可以使用全局变量来访问插件类中的函数。 $GLOBALS['my_custom_plugin'] = new my_custom_plugin(); 然后,例如,在我的FAQ中,我有代码显示了如何从特定的钩子中删除类的一个函数并添加到其他钩子中: function move_input(){ global $my_custom_plugin; remove_action( 'before_main_content', array( $my_custom_plugin, 'display_input') ); add_action( 'after_main_content', array( $my_custom_plugin, 'display_input' ) ); } add_action( 'wp_head' , 'move_input' ); 现在,在我的更新中,该display_input()函数已移至另一个类,我想让人们知道如何访问它。我尝试使用以下弃用通知替换原始功能(在主插件类中): public function display_input() { _deprecated_function( 'display_price', '2.0', 'my_custom_plugin()->display->display_input' ); return $this->display->display_input(); } 但是,add_action和remove_action函数似乎不会触发弃用通知。奇怪的是,即使array( $my_custom_plugin, 'display_input')不存在,完全删除该功能也不会导致错误。 如果有人尝试直接访问该功能: $my_custom_plugin->display_input(); 然后,我确实看到了调试通知。这是预期的结果_deprecated_function()吗?还是我错过了什么?当有人尝试使用不推荐使用的功能删除或添加操作时,是否可以显示调试通知? 更新资料 …

3
如何在永久链接中使用add_query_arg获取漂亮的URL
通过add_query_arg()它可以很好地向URL添加其他参数,并且轻松创建重写规则。到目前为止,一切都很好。但是问题是由wordpress完成的URL替换。 当我有一个网址时,例如: www.mysite.com/?page_id=1&myvar=test 并使用激活的永久链接将此URL键入浏览器的地址栏中。该链接将变为: www.example.com/pagename/?myvar=test 但是:我想得到的是: www.example.com/pagename/test 最后,我想使用如下代码: <a href="<?php add_query_arg( 'myvar', 'test', get_permalink() ) ?>"> .... </a> 这将导致: www.example.com/pagename/test 如何做到这一点?我已经花了几个小时阅读文档,却找不到解决方案。

2
WordPress cron作业会减慢页面加载速度吗?
如果用户访问某个站点并且他的访问触发了一项非常繁重的Cron作业,那么页面加载速度对他来说会较慢吗?据我了解,页面在加载之前不会等待cron作业执行,但是由于cron作业将并行运行,因此由于服务器繁忙,页面加载速度仍然可能会变慢吗?
8 wp-cron  cron 

1
在小部件中使用wp_category_checklist
我正在尝试在小部件中使用wp_category_checklist来显示复选框列表,这些复选框在保存时仍保持勾选状态。据我所知,目前保存它们时,我遇到了很大的麻烦(未选中复选框):- 这是我目前拥有的已编辑代码。 function update($new_instance, $old_instance) { $instance = $old_instance; $instance['widget_categories'] = $new_instance['post_category']; return $instance; } function form($instance) { $instance = wp_parse_args( (array) $instance, $default ); $categories = get_categories(); $category_array = $instance['widget_categories']; if (!$category_array) { $category_array = array(); } ?> <ul class="categorychecklist"> <?php wp_category_checklist(0,0, $category_array,false, NULL , false);?> </ul> <?php } …

3
如何在WordPress上修改图像编辑器对话框选项?
我试图隐藏上载到帖子内容区域的图像的“对齐方式”单选按钮,但无法弄清楚如何向“图像编辑器”对话框中添加自定义CSS或JS文件。 我已经成功地将过滤器添加到tiny_mce_before_init操作钩中,以从TinyMCE文本编辑器中删除对齐按钮,但是不确定如何使用图像编辑器执行相同的操作。 我已经尝试了jQuery hack,但似乎并不需要: $('.mceWrapper iframe').load( function() { $(this).contents().find('tr.align').hide(); });

1
自定义分类法不能与类别使用相同的术语(标记)吗?
我知道在类别和标签下不可能有相同的术语(术语slug),但是令人惊讶的是,正如我今天所意识到的,自定义分类法也是如此。 因此,例如,如果我的网站有一个名为的类别,Linux (linux)并且我也想创建一个自定义的分类法术语“ Linux”,则它看起来像Linux (linux-2),即子弹头必须不同。 而且,如果我尝试将Slug重命名为linux,则会收到错误消息:“ Slug'linux'已被另一个术语使用”。 在类别/标签和自定义分类法下是否可能有相同的术语(不会造成严重破坏)? 如何复制问题? 创建3-5个新帖子。创建一个新类别并标记并将其分配给这些帖子(仅出于测试目的)。 保存永久链接设置。 在自定义分类法下创建两个与您之前创建的类别和标签具有相同名称和子句的新术语,然后将它们分配给自定义帖子类型下的新帖子。 删除自定义分类法。 尝试重新创建它们,现在您将收到错误消息:“子词“ XXX”已被另一个术语使用。” 有时那会重现问题,有时不会。 但... 如果您能够使用相同的名称和子标签创建类别(或标签)和自定义分类法,请执行此操作。然后,重命名其中之一,您会注意到类别(或标签)和自定义分类法都被重命名了!

2
从主题获取插件目录
有谁知道从主题的functions.php中获取插件目录路径的非hacky方法? 我使用了plugin_dir_path(FILE),但是由于在主题的functions.php中调用了它,它返回了该文件的路径。不是插件目录。我可以对它进行字符串操作并添加插件路径,但这感觉几乎与对整个路径进行硬编码一样糟糕。 我已经使用它工作: require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' ); 但是我知道那太老套了,而且是错误的,我可能会因为使用它而被wordpress社区拒之门外! 我可以使用标准的wordpress功能吗?

3
WordPress设置API,在“自定义菜单”页面上实现选项卡
我一直在关注这个人的WordPress设置API教程系列: http://wp.tutsplus.com/tutorials/theme-development/the-complete-guide-to-the-wordpress-settings-api-part-1/ 到目前为止,我已经成功完成了基本工作。现在,在实现选项卡时,我面临问题。 问题1:选项卡不起作用。所有字段都显示在两个选项卡上。第1部分应显示在选项卡1上,第2部分应显示在选项卡2上。 问题2:选项2未保存。在实施制表符之前,它运行良好。 码: /* ----------------------------------------------------------------------------- */ /* Add Menu Page */ /* ----------------------------------------------------------------------------- */ function add_my_menu() { add_menu_page ( 'Page Title', // page title 'Menu Title', // menu title 'manage_options', // capability 'my-menu-slug', // menu-slug 'my_menu_page', // function that will render its output get_template_directory_uri() . '/assets/ico/theme-option-menu-icon.png' // …

2
将Backbone与WordPress AJAX API结合使用
我正在尝试使用Backbone构建一个简单的TODO插件,并且遇到了AJAX API问题。为了获得正确的AJAX回调,您必须像这样传递“ action”参数: admin-ajax.php?action = get_todos 对于Backbone中的GET方法,它工作正常。但是,在使用DELETE时,Backbone默认会使用如下所示的URL: admin-ajax.php?action = get_todos / 9 其中“ 9”是要删除的待办事项的ID。通过添加此ID,可以中断WordPress端的AJAX调用。我可以手动覆盖每个方法的URL,但我想知道是否还有一种更优雅的方法来使AJAX API与Backbone一起使用。 我创建了一个演示插件,该插件显示了我遇到的具体问题。加载设置页面,然后在观看网络检查器的同时单击任意X,以查看来自WordPress的0值AJAX结果。 https://github.com/hereswhatidid/wordpress-todo-backbone-demo

2
在Woocommerce产品标题中添加字幕
我在使用Pagelines Framework构建的网站上使用WooCommerce。我需要在网站上任何出现在产品名称下方的字幕/可自定义字段。实际上,WooCommerce不提供该选项。 我尝试使用自定义字段,但WooCommerce也使用这些字段,并输出了一些我不想要的东西以及字幕。如果我将自定义字段命名为“ bookauthor”,那么此代码是否可以仅显示我想要的自定义字段? <?php echo get_post_meta($id, "bookauthor", true); ?> 如果是这样,我如何使新字段的输出紧跟在前端的产品标题之后? 我在这个php文件中找到了我需要的钩子(我想,我不知道php,这就是为什么我要问你): <?php /* * @hooked woocommerce_template_single_title - 5 * @hooked woocommerce_template_single_price - 10 * @hooked woocommerce_template_single_excerpt - 20 * @hooked woocommerce_template_single_add_to_cart - 30 * @hooked woocommerce_template_single_meta - 40 * @hooked woocommerce_template_single_sharing - 50 */ ?> 我知道如何过滤掉,但如何将自定义字段添加到该列表中? 还是有完全不同的方式来实现我所需要的? 衷心感谢任何可以提供帮助的人。

2
特色图片作为页面上的背景图片
我正在通过仪表板在页面上添加特色图像,并且希望将其用作页面容器div上的背景图像。我想通过CSS应用背景图片,因此我正在考虑将样式属性放入标记中。我正在考虑做这样的事情: <div id="<?php echo $post_name; ?>" class="page<?php echo $post_id; ?>" style="background: url(<?php wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); ?>) !important;"> 但是不幸的是,这是行不通的。 当我检查输出是这样的: background: url() !important; 这有什么问题?有什么建议么?谢谢!

1
WordPress主题和PHP单元
有没有将PHP单元测试与WordPress主题结合使用的示例,似乎很多关于该主题的博客都过时了,因为核心单元测试与trac无关,但是昨晚-我拉了trac并尝试建立示例进行测试的主题。它无法正常工作,您必须运行所有测试以测试您的主题,即使您尝试并需要一个文件,它也会在WordPress实例化之前试图要求它,并且文件变得一团糟。 无论如何,我知道有用于主题单元测试的插件-但这只会安装大量“尝试”并破坏您的主题的帖子-不会测试底层逻辑-尤其是在构建框架的情况下-php单元在这里最好您可以测试代码的所有不同选项和实现。 那么有没有办法在主题内运行PHPunit?

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.