Questions tagged «customization»

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

7
如何删除插件插入的管理菜单页面?
我有以下代码,该代码清除了许多在管理区域中不会使用的东西: add_action( 'admin_menu', 'my_remove_menu_pages' ); function my_remove_menu_pages() { remove_menu_page( 'edit.php' ); //Posts remove_menu_page( 'upload.php' ); //Media remove_menu_page( 'edit-comments.php' ); //Comments remove_menu_page( 'themes.php' ); //Appearance remove_menu_page( 'users.php' ); //Users remove_menu_page( 'tools.php' ); //Tools remove_menu_page( 'options-general.php' ); //Settings }; 但是,从插件中插入了两个菜单项。 当我将鼠标悬停在每个菜单项上时,它说的链接是: /wp-admin/edit.php?post_type=acf /wp-admin/admin.php?page=wpcf7 有没有办法隐藏这些菜单页面?

1
如何使用自定义字段(搜索功能)过滤帖子列表(在WP仪表板帖子列表中)?
尽管我在Google上搜索了很多,但我还没有找到一个非常简单的问题的答案: 我有一些带有自定义字段(即Supplier_name)的帖子。我希望能够根据此自定义字段搜索和过滤我的帖子。换句话说,在管理员帖子列表中,我想要一个搜索框(名为“供应商名称”),可以在其中键入一个值(例如“ IBM”),然后单击一个搜索按钮,我返回所有具有名为“ supplier_name”的定制字段的帖子,如果是,则定制字段的值为“ IBM”。 我怎样才能做到这一点 ?

8
有条件地为短代码加载JavaScript / CSS
我发布了一个创建简码的插件,该插件需要一个JavaScript文件和一个CSS文件才能在包含该简码的任何页面上加载。我可以在所有页面上加载脚本/样式,但这不是最佳实践。我只想在调用短代码的页面上加载文件。我发现有两种方法可以这样做,但是都有问题。 方法1在shortcode处理函数中将标志设置为true,然后在wp_footer回调中检查该值。如果为true,则用于wp_print_scripts()加载JavaScript。这样做的问题是,它仅适用于JavaScript,而不适用于CSS,因为CSS应该在内部声明<head>,您只能在类似initor 的早期挂钩中执行此操作wp_head。 方法2提前触发并“向前看”,以查看当前页面内容中是否存在简码。我比第一种方法更喜欢这种方法,但是它的问题无法检测模板是否调用do_shortcode()。 因此,我倾向于使用第二种方法,然后尝试检测是否已分配模板,如果分配了模板,则将其解析为简码。但是,在此之前,我想检查是否有人知道更好的方法。 更新:我已经将解决​​方案集成到了我的插件中。如果有人想看到它在实时环境中充实,可以下载或浏览它。 更新2:由于WordPress的3.3,它现在可以打电话wp_enqueue_script()直接在短码回调里面,和JavaScript文件将文档的页脚中调用。从技术上讲,这对于CSS文件也是可行的,但应将其视为一种不好的做法,因为在<head>标记外输出CSS 违反W3C规范,可能会破坏FOUC,并可能迫使浏览器重新呈现页面。

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

4
在WP query_posts meta_query中比较日期的正确方法是什么
我在WP模板中有一个query_posts调用。通过使用“更多字段”插件,我可以使站点管理员能够创建事件(自定义帖子类型),然后输入格式为YYYY / mm / dd的日期。 主要问题是;我应该将什么值传递给meta_query数组中的value选项?我目前正在尝试传递“ date(“ Y / m / dh:i A”)”(减去引号),因为据我所知,它将在今天打印当前日期。我不在乎日期的时间,所以可能无关紧要。最终,我正在尝试使用compare选项来确定显示即将发生的事件,该站点上不同位置的过去事件。在另一个地方,我实际上需要将值选项传递给一个数组,该数组将打印当前月份的第一天和最后一天,从而将输出限制为该月发生的事件。 <?php query_posts( array( 'post_type' => 'event', // only query events 'meta_key' => 'event_date', // load up the event_date meta 'orderby' => 'meta_value', // sort by the event_date 'order' => 'asc', // ascending, so earlier events first 'posts_per_page' …

11
您执行一次性脚本的最佳实践是什么?
问题 我们所有人都处在这样的情况下,这个站点上的许多问题都需要这样的解决方案。您要么必须更新数据库,自动插入大量数据,进行convert meta_keys或类似的操作。 当然,在基于最佳实践的运行系统中,这不应发生。 但是,这样做的话,我很想听听您对这个问题的个人解决方案,以及您为什么选择自己的解决方案。 问题 如何在(运行的)WordPress安装中实现一次性脚本? 这里的问题主要是由于以下原因: 插入数据的脚本不应运行多次 需要大量资源的脚本不应在无法监视的时候运行 他们不应该无意中运行 我问的原因 我有自己的见解,我将其张贴在答案中。因为我不知道这是否是最好的解决方案,所以我想了解您的解决方案。同样,这是一个在其他问题中被问过很多次的问题,拥有一个收集想法的资源非常好。 期待向您学习:)

4
如何实现可自定义的免费OpenID身份验证?
OpenID是当今常用的标准。我正在尝试在博客上实现OpenID,但是有很多困难。 我尝试使用OpenID插件,但它似乎与Wordpress 3.0不兼容。 我也试过Janrain插件,但是免费版本太有限了。我想将登录屏幕集成到我的博客主题样式中。 您对如何进行有什么建议吗?还有其他插件吗?还是可以适应与Wordpress轻松集成的任何PHP库?



7
保存自定义字段时添加验证和错误处理?
我有一个在帖子类型上定义自定义字段的函数。假设该字段为“副标题”。 保存帖子后,我想对输入内容进行一些验证,并在必要时在帖子编辑屏幕上显示错误消息。就像是: // Handle post updating function wpse_update_post_custom_values($post_id, $post) { // Do some checking... if($_POST['subhead'] != 'value i expect') { // Add an error here $errors->add('oops', 'There was an error.'); } return $errors; } add_action('save_post','wpse_update_post_custom_values',1,2); 我试图将其挂钩到save_post动作,但是我不知道如何处理错误。似乎没有错误对象传递到函数中,并且如果我创建自己的WP_Error obj并将其返回,则无论哪种机制都不会在后期编辑页面上吐出错误,因此不会尊重它。 我目前在我的自定义meta框内有一个页面错误消息,但这并不理想-我宁愿有一个大的,红色的,最顶部的错误,如WP通常显示。 有任何想法吗? 更新: 根据@Denis的回答,我尝试了一些不同的方法。将错误存储为全局变量是行不通的,因为Wordpress在save_post过程中进行了重定向,这会在显示全局变量之前将其杀死。 我最终将它们存储在meta字段中。问题是您需要清除它们,否则当您导航到另一个页面时它们不会消失,因此我不得不在admin_footer上附加另一个函数,以清除错误。 我不会期望这么常见的错误处理(更新帖子)会很笨拙。我是否缺少明显的东西,或者这是最好的方法? // Handle post updating function wpse_5102_update_post_custom_values($post_id, $post) …


5
为什么每行都有<?php和?>
我几乎到处都看到了这个约定,有时,它几乎使我发疯: &lt;?php //The loop ?&gt; &lt;?php while ( have_posts() ) : the_post(); ?&gt; &lt;?php the_content(); ?&gt; &lt;?php endwhile; // end of the loop. ?&gt; 即使没有中间的HTML代码,也要在每行上加上&lt;?php和?&gt;。 我的问题是:为什么? 为什么要包括所有这些额外的标签? 对我来说,这种约定似乎给代码增加了很多混乱,一开始很烦人,而且还增加了许多意外地遗漏了开始或结束标签的地方。 注意 这是从二十二主题(WordPress给出的示例)中提取的代码。

3
如何获取要在模板中使用的日期格式和时间格式设置?
这是一个奇怪的问题,但我想知道如何访问日期和时间设置 Admin &gt; Settings &gt; General &gt; Date Format Admin &gt; Settings &gt; General &gt; Time Format 我正在使用Any + Time jQuery插件作为自定义帖子类型的编辑器视图的日期/时间选择器。它允许您使用与WordPress相同的设置来指定日期和时间格式。编辑:事实证明它没有使用与W​​ordPress相同的日期部分令牌。瘸。 http://www.ama3.com/anytime/#AnyTime.Converter.format 理想情况下,我想做这样的事情... &lt;?php $wpDateFormat = get_admin_settings('DateFormat'); // $wpDateFormat now holds something like "F j, Y" ?&gt; &lt;script&gt; $("#datetime").AnyTime_picker({ format: '&lt;?php echo $wpDateFormat ?&gt;' ); &lt;/script&gt; 我不知道的是...有这样的功能get_admin_settings()吗?

2
update_post_(meta / term)_cache的说明
我正在阅读10up的一些最佳实践,他们提到在WP_Query中将这两个标志设置为false(取决于您要查询的内容): 'update_post_meta_cache' =&gt; false:在将不使用后meta时有用。 'update_post_term_cache' =&gt; false:在不使用分类术语时很有用。 我假设它利用类似的东西,update_post_caches()但我什至不能100%知道这意味着什么。有人可以解释这两个标志在a中的含义WP_Query以及它们的作用吗?信息越多越好,因为我对WordPress如何缓存事物一无所知,但是对于这两个标志的深思熟虑的答案也是可以接受的。

2
将多个自定义字段添加到常规设置页面
我想做的是在常规设置中添加一些自定义字段。这是我正在使用的代码。一切正常,但我只是想不出如何添加更多字段。 我现在想创建两个字段,一个用于电话号码,第二个用于地址: function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); add_settings_field('my_first_field', '&lt;label for="my_first_field"&gt;'.__('My Field' , 'my_first_field' ).'&lt;/label&gt;' , 'print_custom_field', 'general'); } function print_custom_field() { $value = get_option( 'my_first_field', '' ); echo '&lt;input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" /&gt;'; } add_filter('admin_init', 'register_fields'); 我设法使它适用于多个字段的唯一方法是复制所有内容。 因此,它看起来像这样: function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); …

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.