如果您一直在关注我们这个系列,那么您就会知道我们正处于查看 WordPress 的 50 个操作的最后冲刺阶段。对于那些刚刚加入我们的人,我强烈建议您查看上一篇文章(因为本文从上次停止的地方继续)以及之前每一篇文章链接的文章。
这将使您了解我们现在的进展。
我们开始吧!
插件也有需求:它们可能需要用于自己的选项页面的页内脚本或样式。使用 admin_head-(plugin_page)
操作,可以将内容注入到特定插件页面的 admin_head-(plugin_page)
操作,可以将内容注入到特定插件页面的 标记中。
如果您需要向插件的选项页面添加一些 CSS 样式,下面的代码将帮助您:
<?php add_action( 'admin_head-tools_page_myplugin/myplugin', 'admin_head_plugin_page_example' ); function admin_head_plugin_page_example() { echo '<style type="text/css">' . '/* your style here */' . '</style>'; } // Example Source: https://codex.wordpress.org/Plugin_API/Action_Reference/admin_head-(plugin_page) ?>
用您的CSS代码更改注释掉的行,用您自己的插件替换操作名称的第二部分(tools_page_myplugin/myplugin
),然后就可以开始了!
“Ping”是 WordPress 最古老的功能之一,而 pre_ping
操作可让我们在处理 ping 之前对其进行处理。
在 ping 方面,WordPress 不区分内部链接和外部链接。要禁用自我 ping,您可以使用这个方便的小代码片段:
<?php add_action( 'pre_ping', 'pre_ping_example' ); function pre_ping_example( &$links ) { foreach ( $links as $l => $link ) { if ( 0 === strpos( $link, get_home_url() ) ) { unset( $links[ $l ] ); } } } // Example Source: http://wpdevsnippets.com/remove-slef-pings/ ?>
从现在开始,您的 WordPress 安装将不会 ping 自己的帖子。
get_header()
函数当模板调用 get_header()
函数时,会调用 get_header
函数时,会调用 get_header
操作,非常适合修改 WordPress 前端标头的函数。
如果您很着急,没有时间安装“维护模式”插件并设置其选项,您可以简单地使用下面的代码,并向除管理员之外的所有人发出 wp_die()
错误:
<?php add_action( 'get_header', 'get_header_example' ); function get_header_example() { if ( ! current_user_can( 'activate_plugins' ) ) { wp_die( 'The website will be back soon.' ); } } // Example Source: http://wp-snippets.com/articles/7-code-snippets-you-should-use-on-every-site/ ?>
由于只有管理员(和超级管理员)才有'activate_plugins'
能力,因此网站将对除管理员之外的所有人关闭。
<head>
login_head
操作帮助我们控制登录页面上的 login_head
操作帮助我们控制登录页面上的 <head>
标签。
如果您不喜欢用户提交错误登录信息时出现的“摇晃”效果,可以使用以下功能将其删除:
<?php add_action( 'login_head', 'login_head_example' ); function login_head_example() { remove_action( 'login_head', 'wp_shake_js', 12 ); } // Example Source: http://wordpress.org/support/topic/plugin-simplemodal-login-remove-shake-effect ?>
不过我喜欢这个效果。
有时,我们可能想要控制管理面板的页脚 - 不是页脚部分本身,而是 </body>
标记之前的部分。 admin_footer
操作正是这样做的。
拥有一组一致的颜色是使 WordPress 管理面板美观的原因之一,但我认为对于需要在视觉上分隔的内容(例如不同的帖子状态)进行某些颜色编码没有任何害处。
如果您像我一样并且希望能够区分已发布的帖子与草稿或其他帖子状态,请使用以下代码:
<?php add_action( 'admin_footer', 'admin_footer_example' ); function admin_footer_example() { echo '<style type="text/css"> .status-draft { background-color: #FCE3F2; } .status-pending { background-color: #87C5D6; } .status-future { background-color: #C6EBF5; } .status-private { background-color: #F2D46F; } </style>'; } // Example Source: http://wpsnipp.com/index.php/functions-php/change-admin-postpage-color-by-status-draft-pending-published-future-private/ ?>
我们可以使用 wp_enqueue_scripts
将内容排队到前端,也可以使用 admin_enqueue_scripts
将内容排队到后端。那么登录页面呢?你猜对了:这次 login_enqueue_scripts
是我们的钩子!
我喜欢 WordPress 徽标,但我不认为每次用户登录我的网站时都应该显示它。如果您也有同样的想法,您可以使用下面这个有用的代码片段将 WordPress 徽标替换为您自己的徽标:
<?php add_action( 'login_enqueue_scripts', 'login_enqueue_scripts_example' ); function login_enqueue_scripts_example() { echo '<style type="text/css">' . '#login h1 a {' . 'background-image: url(' . get_bloginfo( 'template_directory' ) . '/images/login-logo.png);' . 'padding-bottom: 30px;' . '}' . '</style>'; } // Example Source: http://wpsnippy.com/add-custom-login-logo-in-your-wordpress-blog/ ?>
将 login-logo.png
文件放入主题的 /images/
文件夹中,就可以了!
您知道管理面板“所有用户”页面中的用户列表吗? manage_users_custom_column
操作允许我们借助随附的过滤器向该列表添加新的自定义列。
假设您需要批量查看会员的注册日期。您可以在每次需要该信息时检查数据库记录,也可以使用此代码片段向用户列表添加额外的列:
<?php add_action( 'manage_users_custom_column', 'manage_users_custom_column_example', 10, 3 ); add_filter( 'manage_users_columns', 'manage_users_columns_example' ); // create a new column named "Zip Code" function manage_users_columns_example( $columns ) { $columns['user_registered'] = __( 'Registration Date', 'theme-name' ); return $columns; } // fill the column cells with the registration dates function manage_users_custom_column_example( $value, $column_name, $user_id ) { if ( 'user_registered' == $column_name ) { $userdata = get_userdata( $user_id ); return $userdata->user_registered; } } // Example Source (Idea): http://tommcfarlin.com/add-custom-user-meta-during-registration/ ?>
现在您对您的会员有了更多了解。
当您需要检查 WordPress 中的插件是否已激活时,您该怎么办?好吧,您使用 activated_plugin
挂钩:这个方便的小操作在插件激活时触发。
假设您有很多客户网站(使用您的电子邮件地址安装),并且当客户在其网站上安装并激活新插件时,您需要收到通知。
只需使用此函数并将其挂接到 activated_plugins
即可:
<?php add_action( 'activated_plugin', 'activated_plugin_example', 10, 2); function activated_plugin_example( $plugin, $network_activation ) { $to = get_option( 'admin_email' ); $subject = 'A plugin has been activated'; $body = "Hey,\n\nThe following plugin has just been activated:\n\n$plugin\n\nCheers!"; wp_mail( $to, $subject, $body ); } ?>
自 WordPress 3.0 起,我们的管理面板有了“配色方案”,并且我们可以编辑、添加或删除配色方案。 admin_color_scheme_picker
操作使用户可以更改颜色方案。
这个例子不需要太多介绍:如果您需要剥夺用户更改配色方案的权利(例如,因为您有一个特殊的配色方案并且您不希望用户将其更改回来)为默认值),使用下面的代码片段删除该选项:
<?php if( is_admin() ) { remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' ); } // Example Source: http://wpsnipp.com/index.php/functions-php/remove-admin-color-scheme-picker-from-profile/ ?>
嘿,我们刚刚从同名的动作挂钩中删除了一个函数。我知道,这很奇怪。
用户登录、用户注销,当他们注销时,将调用 wp_logout
操作。
从 WordPress 网站注销有点奇怪:您会被重定向到登录页面,就像 WordPress 需要您再次登录一样。以下是解决该问题并将用户注销时重定向到主页的方法:
<?php add_action( 'wp_logout', 'wp_logout_example' ); function wp_logout_example() { wp_redirect( home_url() ); exit(); } // Example Source: http://wpsnippy.com/auto-redirect-users-after-logout/ ?>
现在,每次用户注销时,他们都会看到主页而不是登录表单。
我们刚刚完成了本文中的最后一批 50 个操作。我希望你喜欢它并从中学到新东西。在下一篇文章中,我们将快速浏览一下我们所看到的内容并结束该系列。
我也想听听你的想法。您对这些行动有何看法?在下面发表您的评论。如果您喜欢这篇文章,别忘了分享!
以上是WordPress 的五十个动作 - 演示 50 个示例(从 41 到 50)的详细内容。更多信息请关注PHP中文网其他相关文章!