WordPress

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

1
如何正确地使子主题中的脚本和样式出队?
我在一个项目中制作了一个父主题和一个子主题。我将CSS和JavaScript放入了父主题中,如下所示: function project_necessary_scripts() { //Stylesheets wp_register_style( 'bootstrap-css', get_template_directory_uri() .'/css/bootstrap.min.css' ); wp_register_style( 'bootstrap-map', get_template_directory_uri() .'/css/bootstrap.css.map' ); wp_register_style( 'project-css', get_stylesheet_uri() ); wp_enqueue_style( 'bootstrap-css' ); wp_enqueue_style( 'bootstrap-map' ); wp_enqueue_style( 'project-css' ); //JavaScripts wp_register_script( 'modernizr-js', get_template_directory_uri() .'/js/modernizr-2.8.3.min.js', array(), '2.8.3' ); wp_register_script( 'project-js', get_template_directory_uri() .'/js/project.min.js', array('jquery'), '20150401', true ); wp_enqueue_script( 'modernizr-js' ); wp_enqueue_script( 'project-js' ); …

2
在多站点中按博客ID获取上传URL
问题的实质是,我正在寻找这样的解决方案: $blog_upload_dir_info = wp_upload_dir( $date, $blog_ID ); $blog_upload_url = $blog_upload_dir_info[ 'baseurl' ]; 哪里$blog_ID是当前博客ID的不同。最“ WP-obvious”解决方案失败了: switch_to_blog( $blog_ID ); $blog_upload_dir_info = wp_upload_dir(); restore_current_blog(); 因为wp_upload_dir()依赖于WP_CONTENT_URL动态设置当前博客URL 的常数,除非设置了该选项upload_url_path。 当然,我可以设置此选项,但这会将我的代码耦合到具体的系统设置,其中包括很多“ WTF?”潜力。 因此,我决定虚拟添加此选项: /** * Apply a value to the option blog_upload_url * if there's not already one * * @wp-hook option_upload_url_path * @param string $upload_url * …

2
旧的永久链接块存储在哪里?
我发表了一篇关于永久链接的文章: http://domain.com/writing 然后,在发布后,我将永久链接条更改为writing-lorem。现在,无论何时我访问/writing,它都会重定向到/writing-lorem。 我想将writingslug用于新类别,但是不能,它将更改为writing-2。 为了尝试删除该段记录的所有记录writing,我在数据库中查找了post_name该帖子下的列,但值是新段记录writing-lorem。 然后,我搜索具有该writing值的其他帖子,没有找到。 该条塞到底存储在哪里,如何删除它以便可以将其用于类别?

3
黑客可以用我的wp-config.php做些什么
我试图保护我的wordpress博客。我在网络上阅读了一些帖子,应该改变我的table_prefix身份并且隐藏我的身份wp-config.php。但是,我不明白吗?攻击者可以对我做wp-config.php什么? 我的意思是我的数据库配置,但是攻击者需要我DB_HOST举例来说,这是不那么容易得到的,为了连接到我的分贝(在我的情况下,其?define('DB_HOST', 'localhost');,其中,攻击者无法使用连接到我的分贝) 还是我想念某物? 非常感谢您的回复!

7
带有结尾波浪号的Wordpress匹配URL
我已经收到了一个漏洞报告(1),这似乎暗示着Wordpress处理跟随波浪号的URL的方式可能存在安全问题。扫描程序似乎认为该网站可能正在提供某些目录列表等。 令我感到惊讶的是,我的网站仍在这些不同的URL上提供内容,因此我通过安装一个完全空白的WP实例进行了测试,切换为“帖子名称”永久链接,并确认是的,所有带有波浪号的URL仍被解释为不带波浪号的URL。 确实,这样的网址: https://mywordpresssite.com/my-permalink 也可以通过以下URL访问: https://mywordpresssite.com/my-permalink~ https://mywordpresssite.com/my-permalink~/ https://mywordpresssite.com/my-permalink~~~~~~ 我四处摸索,看看WP在哪里解析了永久链接,并class-wp.php在该parse_request方法中对其进行了跟踪,但是没有比这更深入的了。 我的问题是,这是否是WP的预期行为,如果是,是否有什么办法可以关闭此功能,从而不匹配波浪号?WP为什么将带有波浪号的URL解释为没有URL的URL? (1)是的,现在我们都已经在英国看到了几次重大的黑客攻击和数据泄露事件,这一次是“安全”人员再次假装自己通过向开发人员提供200页扫描报告来做自己的工作如果我们阅读并采取上述行动,他们充满了假阳性和一般性问题,他们对他们一无所知。
11 permalinks 

2
为自定义字段创建搜索表单
我为汽车经销商建立了一个主题。每辆汽车都是自定义帖子类型(“车辆”),并具有约12个自定义字段,其中包括品牌,型号,里程,燃料类型等。 因此,基本上在主页上,我需要一个搜索表单,该表单具有用于Make&Model的下拉列表,并包含任何可用的Make或Models。 我还希望它具有Year的2个选项,因此最终用户可以选择“ 2006”和“ 2012”,并且搜索结果包含年份在这两个数字之间的所有车辆。 有没有可以做到这一点的插件? 谢谢你的帮助..这已经使我疯狂了好几个小时!!!

2
我应该在插件中使用spl_autoload_register()吗?
当我在插件中使用spl_autoload_register时,我得到: Fatal error: Uncaught exception 'LogicException' with message 'Class wp_atom_server could not be loaded' wp-includes\pluggable-deprecated.php on line 182 我做了一些阅读,发现了各种修复方法。 有人说不要在WordPress中使用spl_autoload_register。 准确吗? 我确定我可以找到该错误的“修复程序”,但是我不确定我想在每个WP版本中都这样做。 如果不使用自动加载功能,应该如何加载我的课程?这是现在打破的东西: spl_autoload_extensions(".php"); spl_autoload_register(); use MyPluginClasses\Student as MS; $student = new MS\Student(); echo $student->sayHello(); 在学生中: <?PHP namespace MyPluginClasses\Student { class Student{ public function __Construct(){ echo "Hello Johnny"; } public …


2
第一页上的帖子数不同
我需要第一页上每页上的帖子数量与其他页面上不同。 例如,这就是我需要的 总职位:6 第一页:显示3个帖子 下一页:每页显示2条帖子 这是我的代码: $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $fp_limit = 3; // first page limit $limit = 2; // following page limit $offset = 0; // default offset if( $paged == 1 ) { $limit = $fp_limit; } else { $offset = $fp_limit + ( …

9
如何修复损坏的视觉编辑器
我们的可视化编辑器正在显示原始HTML: 如果我单击“视觉”或“文本”,则什么也没有发生-该点击未注册。 我的个人资料没有选中“禁用视觉编辑器”。 在Chrome,Opera和Firefox中也是如此。 我禁用了所有主题和插件,没有任何更改。 我上传了/ wp-admin和/ wp-includes,没有任何更改。 我还可以尝试其他哪些方法来还原可视化编辑器?

2
为什么对wp_postmeta的“ _edit_lock”进行简单更新如此缓慢?
在我们的MySQL慢查询日志中,累积最慢的查询是对wp_postmeta的简单更新。这是一个例子: UPDATE `wp_postmeta` SET `meta_value` = '1392835505:386' WHERE `post_id` = 94705 AND `meta_key` = '_edit_lock'; 我们设置的相关详细信息: MySQL慢查询时间设置为1s wp_postmeta的存储引擎是InnoDB 在大型多站点安装中运行,在主WP博客上有成千上万的帖子(发生这些缓慢查询的地方) WP管理区域中的活动频繁(很多作家/编辑者同时工作,但通常都是自己(而非他人)的内容) WP公开方面的活动较少(实际上并未提供主要博客的内容) 缓慢的查询似乎都在使用“ _edit_lock”键;相同格式(使用“ _edit_lock”以外的键)的查询似乎并不慢。 为什么这是我们系统上最慢的查询?它与WP对“编辑锁”的特定使用有关吗? 谢谢!:) 更新:mysqlsla的输出如下: ______________________________________________________________________ 001 ___ Count : 606 (16.83%) Time : 2257.760468 s total, 3.725677 s avg, 1.00512 s to 84.645869 s max (20.60%) 95% …
11 mysql  post-meta 

2
数据库版本控制和部署的解决方案?
目前,我使用转储脚本并将数据库提交到git repo。 --skip-extended-insert --skip-comments --skip-dump-date意味着diff可以使我对更改的内容有一个清晰的了解,但是如果我尝试合并,所有内容都会掉落。 WP_SITEURL,WP_HOME和所有其他wordpress存储完整URL的地方都需要在导入到另一个主机(测试,登台,生产)时进行更新 有人在使用更好的方法吗? 主要问题: WordPress会在整个数据库中存储完整的URL(不可移植) 许多其他不相关的记录发生更改 auto_increment值(我只是删除了这些值,但是遇到ID问题) 时间戳记(也可能剥离) 临时 *记录...不知道该如何处理 一个创建带有时间戳的迁移,仅添加或删除事物的过程将是理想的……但是我不确定是否有可能?

1
更改“插件激活”消息默认值
每当WordPress中的管理员激活插件时,在重新加载插件页面时,成功激活后都会显示一条通知,报告“插件已激活”。 是否可以更改显示在管理通知中的文本,还是必须使用自己的自定义消息?另外,如果我必须使用自定义消息,这是否将取消默认的“插件激活”消息? 相关问题: 卸载,激活,停用插件:典型功能和操作方法 插件激活后如何显示自定义消息? gettext语法有什么意义? 重复: 感谢Pieter的发现: 如何在WordPress中删除默认的“已激活插件” 其他资源: gettext()函数 注意 请记住,尽管“ gettext”过滤器仅在translate()函数调用期间translate()应用,但实际上i18n.php中的所有其他i18n函数都使用该过滤器。这些包括本文“ Gettext语法 ”中此处列出的所有功能。
11 plugins  admin  hooks 


1
检查add_menu_page是否存在
我正在开发必须分批发布的插件。 问题是,如果页面中有菜单,则将新插件添加到第二个或下一个子菜单,否则添加新菜单,然后将插件添加到第一个子菜单。 我的问题: 如何检查菜单是否存在? 如果我正在编写一个可重用的函数,那么它将与每个插件一起使用,这将导致冲突选项。 我不知道插件发布的顺序。 add_menu_page( 'Page Title', 'Top Menu Title', 'manage_options', 'my_unique_slug', 'my_magic_function' ); add_submenu_page( 'my_unique_slug', 'page title', 'submenu title', 'manage_options', 'my_submenu_slug', 'my_magic_function_of_submenu' );

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.