WordPress

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

3
自定义帖子元字段对帖子性能的影响
我的帖子有许多自定义的元字段。在帖子中,我会根据需要致电给他们get_post_meta。对于10个meta字段,我正在使用10次。 我做对了吗?意思是,上述方法是否存在任何性能问题,如果是,那么如何减少通话次数。 我知道这里有可用的答案:“ 自定义字段和性能”,它说明了“单个查询”的使用。但这并不清楚,所以请再次询问是否有人知道并想详细分享。

3
构建自定义的REST API
我有一个WordPress.org网站,该网站接受用户输入,搜索自定义数据库并显示查询结果。我使用wpdb类进行此工作。现在,我正在尝试使它适用于android应用。 据我了解,构建RESTful服务器是此类事情的当前“最佳实践”。我研究了一些可以帮助我完成此操作的插件,然后发现: json-rest-api-在我看来,这仅公开了WordPress的核心功能(即帖子,页面,用户等),而我看不到如何使它对非默认表执行自定义查询。 这篇博客文章说,wp mvc完全可以实现我想要的功能,只不过它已经两年多没有更新了,所以可以将它排除在外。 也有Jetpack,但据我所见,json-rest-api是它的更新版本,似乎也只提供了核心功能。 有没有办法使这些插件中的任何一个都能用于自定义端点?还是我还没有找到其他插件? 如果我不使用插件,我认为我必须自己动手。我可以从头开始(使用做到这一点wpdb,msqli或东西),或与API的帮助,如Restler。 如果我自己动手,是否应该在主题中创建模板,是否在其中包含REST并将该主题分配给仪表板中的页面?还是为此而让另一台服务器与WordPress分开运行会更好? 据我所知,这些是我唯一的选择。我想知道推荐的最佳做法是什么。我发现很难相信没有其他人能做到这一点。有什么我忽略的选择吗?
10 plugins  mobile  json  restful 

1
启用更新通知,禁用更新
关于如何禁用更新和/或删除更新通知存在很多问题。但是,所有禁用更新的解决方案也会禁用更新通知。 但是我想禁用更新的可能性,同时仍然收到有关可用更新的通知。 目前我使用define( 'DISALLOW_FILE_MODS', true ); Codex 这样做的问题是,它不仅禁用了更新过程,而且还禁用了通知。 编辑:好吧,我本人还是走下了兔子洞。我想我也应该澄清一下,我不是(仅)在谈论核心更新,而是在谈论插件和主题。 如果我理解正确,这是因为在/wp-admin/includes/update.php:250中,该函数提早返回。 所以我看到两个选择: 重新添加会update_plugins破坏目的的选项,我不确定副作用 添加我自己admin_init的复制钩子wp_plugin_update_rows。我试过了,但看起来还是不一样。似乎还有更多的东西,而且感觉这不是一种非常干净的方法。 编辑:有一张票证涵盖了这个问题,以防万一您想使用它:https : //core.trac.wordpress.org/ticket/25219

2
WordPress自动更新会损害我的网站吗?
最近,我知道当有新版本的Wordpress可用时,我的Wordpress网站会自动更新。我知道此自动功能在Wordpress中可用,因为有时会回来。但是我对此有一些疑问: 在任何情况下这都可能有风险吗? 我们安装Wordpress的方式有关系吗?(例如,插件和安全设置) 如果出现任何问题,Wordpress是否可以恢复我们的网站? WordPress在进行更新时是否保留任何备份?

1
为什么在某些404上循环不为空?
我遇到了一个奇怪的问题。 假设您访问一个随机网址,深度为三个或三个以上级别: http://example.com/a/b/c http://example.com/a/b/c/d ... 然后is_404()是true。到现在为止还挺好。但是由于某些原因,查询了最后的帖子。 $wp_query->request 是 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND ( wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private' ) ORDER BY wp_posts.post_date DESC LIMIT 0, 5 那当然会带来have_posts()回报true等等。有人可以解释吗? 到目前为止,我发现了什么: 之所以只能深入到三个或三个以上级别,是因为WP在此之前查找帖子和附件,从而以某种方式导致其他行为。 似乎即使WP在某一时刻将请求识别为404,但它仍会获取最新的帖子。在@kaiser和@GM的帮助下,我已将此问题跟踪到/wp-includes/class-wp.php:608的某个位置。

2
计数循环的帖子(WP_Query)?
我尝试过这种方式显示帖子的NO: <?php $news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') ); if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post(); $count = $news_2->post_count; ?> <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li> <?php } } ?> <?php wp_reset_query(); ?> 如果帖子的NO = 0,我需要显示: <?php $news_2 …
10 count 

3
删除通过匿名函数添加的操作/过滤器
我必须说,这是一种非常糟糕的坏习惯。最近两个小时用了一个解决方案,以删除通过匿名函数添加的操作和过滤器。 这是父主题上使用的代码,我需要将其删除。 /** * Add custom columns to admin comments grid * * Rate that user set. */ add_filter( 'manage_edit-comments_columns', function( $default ) { $columns['smr_comment_rate'] = __( 'Rate', 'txtdmn' ); return array_slice( $default, 0, 3, true ) + $columns + array_slice( $default, 2, NULL, true ); }); 得到了toscho的答案,沉迷于此,但没有帮助。那么,是否还有其他选择可以删除通过匿名函数添加的操作/过滤器? 谢谢

3
替换管理员列表中的标题
这是我的情况:我正在尝试过滤自​​定义帖子类型编辑表中title列的内容,但无法正常工作。 这是我尝试过的: add_filter('manage_edit-mycpt_columns', 'replace_title_products'); function replace_title_products() { $oldtitle = get_the_title(); $newtitle = str_replace(array("<span class='sub-title'>", "</span>"), array("", ""),$oldtitle); $title = esc_attr($newtitle); return $title; } 我只想过滤<span>标题中的标签。有人可以帮我吗?

1
如何在WP 3.9中自定义TinyMCE4-样式和格式的旧方法不再起作用
在WP 3.9之前,我在function.php中应用了以下两个过滤器: function my_mce_buttons_2( $buttons ) { array_unshift( $buttons, 'styleselect' ); return $buttons; } add_filter('mce_buttons_2', 'my_mce_buttons_2'); function mce_mod( $init ) { $init['theme_advanced_blockformats'] = 'p,h3,h4'; $init['theme_advanced_styles'] = "Header gross=mus-bi news-single-bighead; Header klein=mus-bi news-single-smallhead; Link=news-single-link; List Items=news-single-list"; return $init; } add_filter('tiny_mce_before_init', 'mce_mod'); 因此,段落格式下拉列表仅显示p,h3和h4,而自定义样式下拉列表显示“ Header gross”,“ Header klein”等。但是不幸的是,wp和tinymce从wp 3.9开始就不再麻烦了,我现在仅看到标准段落格式的下拉列表 以及标准样式格式下拉列表: 到目前为止,我还没有找到关于文档更新到tinymce 4时是否有任何钩子的文档。有人知道吗?最好的问候拉尔夫 更新:基于更多的研究和下面的评论,我想我已经知道了: …
10 tinymce 

1
向图像实例添加更多选项。(附件显示设置)
我正在尝试在Wordpress 3.9中构建一个简单的可重用插件来进行图像演示,看来我遇到了麻烦。 我希望能够向图像实例添加几个选项。(“附件显示设置”下的详细信息)。就像说“响应式”的复选框会禁用(变灰)图像大小下拉菜单,或固定页面位置的选项等。 在媒体管理器中,选择/替换图像时,我已经能够使用attachment_fields_to_edit和兄弟过滤器添加一些自定义字段,但是这些字段会附加到图像本身(或者,如果需要的话,会附加到图像附件发布对象),所以如果页面上有两个相同图像的实例,则它们将共享我的自定义字段的相同值。 a)我添加的“自定义文本”字段,无法将其附加到实例,同一图像的所有实例都共享此值。 b)这是我要添加选项的区域,因为这里的所有内容似乎都遵循每个实例。 c)显示的显示设置与上一个屏幕相同,但是在Wordpress 3.9中单击图像顶部的“铅笔”时,显示的设置有所不同。请注意attachment_fields_to_edit,此屏幕上根本不显示给出的自定义选项。 即使我对骨干网的工作方式或修改wp.media对象的最佳做法尚不完全了解,但我对php,js和谷歌搜索都相当有能力。但是这一天让我难过了几天,所以任何帮助都将不胜感激。 谢谢阅读!

1
Mega Menu Walker
我正在尝试创建一个大型菜单浏览器。不幸的是,步行者完全逃避了我的编码知识。我真的可以使用一些帮助使其正常工作。这是我需要的功能: 总结第二级<ul>在<section>。[完成] 当用户<li>在第二级中将类“ break”设置<ul>为时,<li>请重新开始<ul>。如果它是<li>列表中的第一个列表,则不要执行任何操作以防止形成空的无序列表。[完成] 当用户<li>在具有子级的第一级中将类“ widget”设置为时<ul>,请将小部件附加到该类的末尾<ul>。[完成] 将类添加mega-menu-columns-#到<li>包含具有多个列和/或小部件的下拉菜单的第一级元素中。#表示<ul>元素数,小部件+1(如果存在)。[完成] 我有一些代码可以执行某些操作,但不是全部。以下是切除部分: 将第二级包装<ul>在<section>: function start_lvl(&$output, $depth = 0, $args = array()) { if ($depth == 0) { $output .= "<section>"; } $output .= "<ul class=\"sub-menu\">"; } function end_lvl(&$output, $depth = 0, $args = array()) { $output .= "</ul>"; if ($depth == 0) { $output …

1
排队登录页面的样式表,使其出现在head元素中
我尝试在主题中设置登录页面的样式。很简单: add_action( 'login_enqueue_scripts', function() { wp_enqueue_style( 'TEST', get_template_directory_uri() . '/css/login.css' ); }); 不幸的是,它不能按预期工作。该link元素显示在body登录页面的中,时间很晚。 渲染输出: <link rel='stylesheet' id='TEST-css' href='http://themes.wp/t5-theme-base/css/login.css?ver=3.9-alpha' type='text/css' media='all' /> <div class="clear"></div> </body> </html> 这是错误的,如何在中打印link元素head?

4
如何将两个查询合并在一起
我正在尝试通过首先显示带有图像的帖子,然后显示没有图像的帖子来对类别中的帖子进行排序。我已经通过运行两个查询来做到这一点,现在我想将两个查询合并在一起。 我有以下内容: <?php $loop = new WP_Query( array('meta_key' => '_thumbnail_id', 'cat' => 1 ) ); $loop2 = new WP_Query( array('meta_key' => '', 'cat' => 1 ) ); $mergedloops = array_merge($loop, $loop2); while($mergedloops->have_posts()): $mergedloops->the_post(); ?> 但是,当我尝试查看页面时,出现以下错误: Fatal error: Call to a member function have_posts() on a non-object in... 然后,我尝试将array_merge强制转换为对象,但出现以下错误: Fatal error: …
10 wp-query  merging 

1
WP 3.8所有用户的默认管理员颜色
我对3.8的新配色方案感到惊讶,尽管经典的3.7主题已消失,但我想将新的“ Light”配色方案设置为所有用户的默认设置,但同时,仍然允许他们更改如果愿意,请在用户个人资料中显示主题。 是否有人设法提供一种为所有用户设置默认值的功能?我已经搜索过了,但是什么也找不到,因为这是如此新,没有完全编写3.8 Codex。
10 admin  wp-admin 

3
禁用的插件是安全漏洞-谣言还是现实?
我已经阅读了许多WordPress安全博客文章,其中安全专家建议一些特别的步骤,当有人担心其WordPress网站的安全性时要多加注意。其中之一是: WordPress安全提示: 删除不需要的不必要的插件。 带有安全漏洞的插件(无论是通过代码,结构还是数据库连接)都可能对站点造成致命影响,即使已在站点上将其激活也是如此。另一方面,结构良好,编码正确且数据库连接牢固的插件即使被停用也可能没有安全漏洞。那么问题到底出在哪里呢? 我有一个网站,其中偶尔会使用一些插件。我实际上不想删除它们,但是当不需要它们时,我只是将其从站点上停用。我需要删除它们以保护我的网站吗,为什么?
10 plugins  security 

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.