我不知道为什么要排除挂钩作为可能的解决方案,因为我仍然认为这是最好的选择
选项1-如果没有挂钩,则要使用的特定URL必须存在,并且不能返回404。我可能认为您最好的选择是创建一个私有页面,并将代码直接添加到将用于该页面的指定模板中。然后,当您访问该特定页面时,您的代码将执行。
嗯,这真是个糟糕的解决方案
选项2-使用挂钩在我看来,这将是最好的选项
OPTION 2.1
在插件中添加代码,并将代码挂接到
register_activation_hook
钩这将确保当插件被激活时,您的代码将运行,而不是在此后每次加载页面时再次运行
OPTION 2.2
在主题中添加代码,并将其挂接到
after_theme_switch
钩这将在您激活主题后立即运行。
OPTION 2.3
通过使用条件标记,您可以专门针对特定页面,然后钩住函数,以便在访问特定URL时执行代码。您可以使用
wp
钩住这里
wp
执行时,设置条件标记。您还可以使用
template_redirect
钩子,这是许多人喜欢的钩子。
在这三种选择中,它们是选择IMHO的最佳路线。
重要提示:
您应该构建您的系统,这样,如果您不小心或故意运行代码两次,那么在第二次运行时它将不会起任何作用。最好的选择可能是在选项中保存一些内容,然后在执行代码之前检查特定值。
EXAMPLE:
add_action( \'wp\', function () // Can also use template_redirect as $tag
{
// Make sure we target a specific page, if not our page, bail
if ( !is_page( \'my selected page\' ) ) // Use any conditional tag here to your specific needs
return;
// Chech if our custom option exist with a specific value, if yes, bail
if ( true == get_option( \'my_custom_option\' ) )
return;
/**
* This is where you should do all your work as we are on the selected page
* and our option does not exist with our prefered value. Just a few notes here
* which you should consider
* - Before inserting users, make sure that the user does not exist yet
* - Before inserting posts make sure as to not duplicate posts
*/
// Run all your code here to insert posts and users
/**
* Create and update our option with the value of `true`.
* This will ensure that our code will be executed once
*/
update_option( \'my_custom_option\', \'true\' );
});