我有一个WordPress框架,我目前正在工作,这是一个美丽的东西,但它不是我所习惯的。我正在尝试扩展此框架,以根据环境(本地/开发/暂存/实时)自动打开或关闭切换(在此处找到:Dashboard->;Settings->;Reading->;Search engine visibility)。
我有。设置的环境文件包含该环境和仅该环境的设置的不同部分。这些在对配置进行基本设置后,将调用env文件。
例如:
<?php
use Roots\\WPConfig\\Config;
/**
* Debugging Settings
*/
Config::define(\'WP_DEBUG_DISPLAY\', false);
Config::define(\'WP_DEBUG_LOG\', env(\'WP_DEBUG_LOG\') ?? false);
Config::define(\'SCRIPT_DEBUG\', false);
ini_set(\'display_errors\', \'0\');
/**
* Pull in relevant .env file
*/
Code to pull in .env file.
然后在。env文件我们的外观如下所示:
<?php
/**
* Configuration overrides for WP_ENV === \'local\'
*/
use Roots\\WPConfig\\Config;
Config::define(\'SAVEQUERIES\', true);
Config::define(\'WP_DEBUG\', true);
Config::define(\'WP_DEBUG_DISPLAY\', true);
Config::define(\'WP_DISABLE_FATAL_ERROR_HANDLER\', true);
Config::define(\'SCRIPT_DEBUG\', true);
ini_set(\'display_errors\', \'1\');
// Enable plugin and theme updates and installation from the admin
Config::define(\'DISALLOW_FILE_MODS\', false);
不过,这很聪明,现在我们知道了这是如何发生的,我正在尝试添加一行内容来更新搜索引擎可见性切换(可在此处找到:Dashboard->;Settings->;Reading->;Search engine visibility)。
Can anyone point me towards a complete list of these definable settings (such as define(\'WP_DEBUG\', true)), specifically the Search engine visibility toggle?
另外,我是否需要定义两次“use Roots\\WPConfig\\Config”;一次在根配置中,另一次在中。环境特定文件?
任何信息都将不胜感激,祝您编码愉快。
EDIT: 遵照佩蒂爵士的建议。
我已在框架中找到此设置:
if (defined(\'WP_ENV\') && WP_ENV !== \'production\' && !is_admin()) {
add_action(\'pre_option_blog_public\', \'__return_zero\');
}
如果我在其他地方尝试跟踪“pre\\u option\\u blog\\u public”,结果一无所获。然而,有以下结果:
add_action( \'update_option_blog_public\', \'update_blog_public\', 10, 2 );
而且:
add_action( \'update_blog_public\', \'wp_update_blog_public_option_on_site_update\', 1, 2 );
这引导我走向:
/**
* Update this blog\'s \'public\' setting in the global blogs table.
*
* Public blogs have a setting of 1, private blogs are 0.
*
* @since MU (3.0.0)
*
* @param int $old_value
* @param int $value The new public value
*/
function update_blog_public( $old_value, $value ) {
update_blog_status( get_current_blog_id(), \'public\', (int) $value );
}
这是:
if ( $new_site->public != $old_site->public ) {
/**
* Fires after the current blog\'s \'public\' setting is updated.
*
* @since MU (3.0.0)
*
* @param int $site_id Site ID.
* @param string $value The value of the site status.
*/
do_action( \'update_blog_public\', $site_id, $new_site->public );
}
最后一点:
/**
* Updates the `blog_public` option for a given site ID.
*
* @since 5.1.0
*
* @param int $site_id Site ID.
* @param string $public The value of the site status.
*/
function wp_update_blog_public_option_on_site_update( $site_id, $public ) {
// Bail if the site\'s database tables do not exist (yet).
if ( ! wp_is_site_initialized( $site_id ) ) {
return;
}
update_blog_option( $site_id, \'blog_public\', $public );
}
Am I right in thinking I just need to adjust the existing code for the first line provided in this edit, to not use:
add_action(\'pre_option_blog_public\', \'__return_zero\');
But instead the line you graciously provided earlier:
add_filter( \'option_blog_public\', \'__return_false\' );
Thoughts?