Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wordpres.../src/integrat...
File: settings-integration.php
'companyOrPersonMessage' => \apply_filters( 'wpseo_knowledge_graph_setting_msg', '' ),
[500] Fix | Delete
'currentUserId' => \get_current_user_id(),
[501] Fix | Delete
'canCreateUsers' => \current_user_can( 'create_users' ),
[502] Fix | Delete
'canCreatePages' => \current_user_can( 'edit_pages' ),
[503] Fix | Delete
'canEditUsers' => \current_user_can( 'edit_users' ),
[504] Fix | Delete
'canManageOptions' => \current_user_can( 'manage_options' ),
[505] Fix | Delete
'userLocale' => \str_replace( '_', '-', \get_user_locale() ),
[506] Fix | Delete
'pluginUrl' => \plugins_url( '', \WPSEO_FILE ),
[507] Fix | Delete
'showForceRewriteTitlesSetting' => ! \current_theme_supports( 'title-tag' ) && ! ( \function_exists( 'wp_is_block_theme' ) && \wp_is_block_theme() ),
[508] Fix | Delete
'upsellSettings' => $this->get_upsell_settings(),
[509] Fix | Delete
'siteRepresentsPerson' => $this->get_site_represents_person( $settings ),
[510] Fix | Delete
'siteBasicsPolicies' => $this->get_site_basics_policies( $settings ),
[511] Fix | Delete
];
[512] Fix | Delete
}
[513] Fix | Delete
[514] Fix | Delete
/**
[515] Fix | Delete
* Retrieves the currently represented person.
[516] Fix | Delete
*
[517] Fix | Delete
* @param array $settings The settings.
[518] Fix | Delete
*
[519] Fix | Delete
* @return array The currently represented person's ID and name.
[520] Fix | Delete
*/
[521] Fix | Delete
protected function get_site_represents_person( $settings ) {
[522] Fix | Delete
$person = [
[523] Fix | Delete
'id' => false,
[524] Fix | Delete
'name' => '',
[525] Fix | Delete
];
[526] Fix | Delete
[527] Fix | Delete
if ( isset( $settings['wpseo_titles']['company_or_person_user_id'] ) ) {
[528] Fix | Delete
$person['id'] = $settings['wpseo_titles']['company_or_person_user_id'];
[529] Fix | Delete
$user = \get_userdata( $person['id'] );
[530] Fix | Delete
if ( $user instanceof WP_User ) {
[531] Fix | Delete
$person['name'] = $user->get( 'display_name' );
[532] Fix | Delete
}
[533] Fix | Delete
}
[534] Fix | Delete
[535] Fix | Delete
return $person;
[536] Fix | Delete
}
[537] Fix | Delete
[538] Fix | Delete
/**
[539] Fix | Delete
* Get site policy data.
[540] Fix | Delete
*
[541] Fix | Delete
* @param array $settings The settings.
[542] Fix | Delete
*
[543] Fix | Delete
* @return array The policy data.
[544] Fix | Delete
*/
[545] Fix | Delete
private function get_site_basics_policies( $settings ) {
[546] Fix | Delete
$policies = [];
[547] Fix | Delete
[548] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['publishing_principles_id'], 'publishing_principles_id' );
[549] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['ownership_funding_info_id'], 'ownership_funding_info_id' );
[550] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['actionable_feedback_policy_id'], 'actionable_feedback_policy_id' );
[551] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['corrections_policy_id'], 'corrections_policy_id' );
[552] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['ethics_policy_id'], 'ethics_policy_id' );
[553] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['diversity_policy_id'], 'diversity_policy_id' );
[554] Fix | Delete
$policies = $this->maybe_add_policy( $policies, $settings['wpseo_titles']['diversity_staffing_report_id'], 'diversity_staffing_report_id' );
[555] Fix | Delete
[556] Fix | Delete
return $policies;
[557] Fix | Delete
}
[558] Fix | Delete
[559] Fix | Delete
/**
[560] Fix | Delete
* Adds policy data if it is present.
[561] Fix | Delete
*
[562] Fix | Delete
* @param array $policies The existing policy data.
[563] Fix | Delete
* @param int $policy The policy id to check.
[564] Fix | Delete
* @param string $key The option key name.
[565] Fix | Delete
*
[566] Fix | Delete
* @return array<int,string> The policy data.
[567] Fix | Delete
*/
[568] Fix | Delete
private function maybe_add_policy( $policies, $policy, $key ) {
[569] Fix | Delete
$policy_array = [
[570] Fix | Delete
'id' => 0,
[571] Fix | Delete
'name' => \__( 'None', 'wordpress-seo' ),
[572] Fix | Delete
];
[573] Fix | Delete
[574] Fix | Delete
if ( isset( $policy ) && \is_int( $policy ) ) {
[575] Fix | Delete
$policy_array['id'] = $policy;
[576] Fix | Delete
$post = \get_post( $policy );
[577] Fix | Delete
if ( $post instanceof WP_Post ) {
[578] Fix | Delete
if ( $post->post_status !== 'publish' || $post->post_password !== '' ) {
[579] Fix | Delete
return $policies;
[580] Fix | Delete
}
[581] Fix | Delete
$policy_array['name'] = $post->post_title;
[582] Fix | Delete
}
[583] Fix | Delete
}
[584] Fix | Delete
[585] Fix | Delete
$policies[ $key ] = $policy_array;
[586] Fix | Delete
[587] Fix | Delete
return $policies;
[588] Fix | Delete
}
[589] Fix | Delete
[590] Fix | Delete
/**
[591] Fix | Delete
* Returns settings for the Call to Buy (CTB) buttons.
[592] Fix | Delete
*
[593] Fix | Delete
* @return array<string> The array of CTB settings.
[594] Fix | Delete
*/
[595] Fix | Delete
public function get_upsell_settings() {
[596] Fix | Delete
return [
[597] Fix | Delete
'actionId' => 'load-nfd-ctb',
[598] Fix | Delete
'premiumCtbId' => 'f6a84663-465f-4cb5-8ba5-f7a6d72224b2',
[599] Fix | Delete
];
[600] Fix | Delete
}
[601] Fix | Delete
[602] Fix | Delete
/**
[603] Fix | Delete
* Retrieves the default setting values.
[604] Fix | Delete
*
[605] Fix | Delete
* These default values are currently being used in the UI for dummy fields.
[606] Fix | Delete
* Dummy fields should not expose or reflect the actual data.
[607] Fix | Delete
*
[608] Fix | Delete
* @return array The default setting values.
[609] Fix | Delete
*/
[610] Fix | Delete
protected function get_default_setting_values() {
[611] Fix | Delete
$defaults = [];
[612] Fix | Delete
[613] Fix | Delete
// Add Yoast settings.
[614] Fix | Delete
foreach ( WPSEO_Options::$options as $option_name => $instance ) {
[615] Fix | Delete
if ( \in_array( $option_name, self::ALLOWED_OPTION_GROUPS, true ) ) {
[616] Fix | Delete
$option_instance = WPSEO_Options::get_option_instance( $option_name );
[617] Fix | Delete
$defaults[ $option_name ] = ( $option_instance ) ? $option_instance->get_defaults() : [];
[618] Fix | Delete
}
[619] Fix | Delete
}
[620] Fix | Delete
// Add WP settings.
[621] Fix | Delete
foreach ( self::WP_OPTIONS as $option_name ) {
[622] Fix | Delete
$defaults[ $option_name ] = '';
[623] Fix | Delete
}
[624] Fix | Delete
[625] Fix | Delete
// Remove disallowed settings.
[626] Fix | Delete
foreach ( self::DISALLOWED_SETTINGS as $option_name => $disallowed_settings ) {
[627] Fix | Delete
foreach ( $disallowed_settings as $disallowed_setting ) {
[628] Fix | Delete
unset( $defaults[ $option_name ][ $disallowed_setting ] );
[629] Fix | Delete
}
[630] Fix | Delete
}
[631] Fix | Delete
[632] Fix | Delete
if ( \defined( 'WPSEO_LOCAL_FILE' ) ) {
[633] Fix | Delete
$defaults = $this->get_defaults_from_local_seo( $defaults );
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
return $defaults;
[637] Fix | Delete
}
[638] Fix | Delete
[639] Fix | Delete
/**
[640] Fix | Delete
* Retrieves the organization schema values from Local SEO for defaults in Site representation fields.
[641] Fix | Delete
* Specifically for the org-vat-id, org-tax-id, org-email and org-phone options.
[642] Fix | Delete
*
[643] Fix | Delete
* @param array<string|int|bool> $defaults The settings defaults.
[644] Fix | Delete
*
[645] Fix | Delete
* @return array<string|int|bool> The settings defaults with local seo overides.
[646] Fix | Delete
*/
[647] Fix | Delete
protected function get_defaults_from_local_seo( $defaults ) {
[648] Fix | Delete
$local_options = \get_option( 'wpseo_local' );
[649] Fix | Delete
$multiple_locations = $local_options['use_multiple_locations'];
[650] Fix | Delete
$same_organization = $local_options['multiple_locations_same_organization'];
[651] Fix | Delete
$shared_info = $local_options['multiple_locations_shared_business_info'];
[652] Fix | Delete
if ( $multiple_locations !== 'on' || ( $multiple_locations === 'on' && $same_organization === 'on' && $shared_info === 'on' ) ) {
[653] Fix | Delete
$defaults['wpseo_titles']['org-vat-id'] = $local_options['location_vat_id'];
[654] Fix | Delete
$defaults['wpseo_titles']['org-tax-id'] = $local_options['location_tax_id'];
[655] Fix | Delete
$defaults['wpseo_titles']['org-email'] = $local_options['location_email'];
[656] Fix | Delete
$defaults['wpseo_titles']['org-phone'] = $local_options['location_phone'];
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
if ( \wpseo_has_primary_location() ) {
[660] Fix | Delete
$primary_location = $local_options['multiple_locations_primary_location'];
[661] Fix | Delete
[662] Fix | Delete
$location_keys = [
[663] Fix | Delete
'org-phone' => [
[664] Fix | Delete
'is_overridden' => '_wpseo_is_overridden_business_phone',
[665] Fix | Delete
'value' => '_wpseo_business_phone',
[666] Fix | Delete
],
[667] Fix | Delete
'org-email' => [
[668] Fix | Delete
'is_overridden' => '_wpseo_is_overridden_business_email',
[669] Fix | Delete
'value' => '_wpseo_business_email',
[670] Fix | Delete
],
[671] Fix | Delete
'org-tax-id' => [
[672] Fix | Delete
'is_overridden' => '_wpseo_is_overridden_business_tax_id',
[673] Fix | Delete
'value' => '_wpseo_business_tax_id',
[674] Fix | Delete
],
[675] Fix | Delete
'org-vat-id' => [
[676] Fix | Delete
'is_overridden' => '_wpseo_is_overridden_business_vat_id',
[677] Fix | Delete
'value' => '_wpseo_business_vat_id',
[678] Fix | Delete
],
[679] Fix | Delete
];
[680] Fix | Delete
[681] Fix | Delete
foreach ( $location_keys as $key => $meta_keys ) {
[682] Fix | Delete
$is_overridden = ( $shared_info === 'on' ) ? \get_post_meta( $primary_location, $meta_keys['is_overridden'], true ) : false;
[683] Fix | Delete
if ( $is_overridden === 'on' || $shared_info !== 'on' ) {
[684] Fix | Delete
$post_meta_value = \get_post_meta( $primary_location, $meta_keys['value'], true );
[685] Fix | Delete
$defaults['wpseo_titles'][ $key ] = ( $post_meta_value ) ? $post_meta_value : '';
[686] Fix | Delete
}
[687] Fix | Delete
}
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
return $defaults;
[691] Fix | Delete
}
[692] Fix | Delete
[693] Fix | Delete
/**
[694] Fix | Delete
* Retrieves the settings and their values.
[695] Fix | Delete
*
[696] Fix | Delete
* @param array $default_setting_values The default setting values.
[697] Fix | Delete
*
[698] Fix | Delete
* @return array The settings.
[699] Fix | Delete
*/
[700] Fix | Delete
protected function get_settings( $default_setting_values ) {
[701] Fix | Delete
$settings = [];
[702] Fix | Delete
[703] Fix | Delete
// Add Yoast settings.
[704] Fix | Delete
foreach ( WPSEO_Options::$options as $option_name => $instance ) {
[705] Fix | Delete
if ( \in_array( $option_name, self::ALLOWED_OPTION_GROUPS, true ) ) {
[706] Fix | Delete
$settings[ $option_name ] = \array_merge( $default_setting_values[ $option_name ], WPSEO_Options::get_option( $option_name ) );
[707] Fix | Delete
}
[708] Fix | Delete
}
[709] Fix | Delete
// Add WP settings.
[710] Fix | Delete
foreach ( self::WP_OPTIONS as $option_name ) {
[711] Fix | Delete
$settings[ $option_name ] = \get_option( $option_name );
[712] Fix | Delete
}
[713] Fix | Delete
[714] Fix | Delete
// Remove disallowed settings.
[715] Fix | Delete
foreach ( self::DISALLOWED_SETTINGS as $option_name => $disallowed_settings ) {
[716] Fix | Delete
foreach ( $disallowed_settings as $disallowed_setting ) {
[717] Fix | Delete
unset( $settings[ $option_name ][ $disallowed_setting ] );
[718] Fix | Delete
}
[719] Fix | Delete
}
[720] Fix | Delete
[721] Fix | Delete
return $settings;
[722] Fix | Delete
}
[723] Fix | Delete
[724] Fix | Delete
/**
[725] Fix | Delete
* Transforms setting values.
[726] Fix | Delete
*
[727] Fix | Delete
* @param array $settings The settings.
[728] Fix | Delete
*
[729] Fix | Delete
* @return array The settings.
[730] Fix | Delete
*/
[731] Fix | Delete
protected function transform_settings( $settings ) {
[732] Fix | Delete
if ( isset( $settings['wpseo_titles']['breadcrumbs-sep'] ) ) {
[733] Fix | Delete
/**
[734] Fix | Delete
* The breadcrumbs separator default value is the HTML entity `&raquo;`.
[735] Fix | Delete
* Which does not get decoded in our JS, while it did in our Yoast form. Decode it here as an exception.
[736] Fix | Delete
*/
[737] Fix | Delete
$settings['wpseo_titles']['breadcrumbs-sep'] = \html_entity_decode(
[738] Fix | Delete
$settings['wpseo_titles']['breadcrumbs-sep'],
[739] Fix | Delete
( \ENT_NOQUOTES | \ENT_HTML5 ),
[740] Fix | Delete
'UTF-8'
[741] Fix | Delete
);
[742] Fix | Delete
}
[743] Fix | Delete
[744] Fix | Delete
/**
[745] Fix | Delete
* Decode some WP options.
[746] Fix | Delete
*/
[747] Fix | Delete
$settings['blogdescription'] = \html_entity_decode(
[748] Fix | Delete
$settings['blogdescription'],
[749] Fix | Delete
( \ENT_NOQUOTES | \ENT_HTML5 ),
[750] Fix | Delete
'UTF-8'
[751] Fix | Delete
);
[752] Fix | Delete
[753] Fix | Delete
return $settings;
[754] Fix | Delete
}
[755] Fix | Delete
[756] Fix | Delete
/**
[757] Fix | Delete
* Retrieves the disabled settings.
[758] Fix | Delete
*
[759] Fix | Delete
* @param array $settings The settings.
[760] Fix | Delete
*
[761] Fix | Delete
* @return array The settings.
[762] Fix | Delete
*/
[763] Fix | Delete
protected function get_disabled_settings( $settings ) {
[764] Fix | Delete
$disabled_settings = [];
[765] Fix | Delete
$site_language = $this->language_helper->get_language();
[766] Fix | Delete
[767] Fix | Delete
foreach ( WPSEO_Options::$options as $option_name => $instance ) {
[768] Fix | Delete
if ( ! \in_array( $option_name, self::ALLOWED_OPTION_GROUPS, true ) ) {
[769] Fix | Delete
continue;
[770] Fix | Delete
}
[771] Fix | Delete
[772] Fix | Delete
$disabled_settings[ $option_name ] = [];
[773] Fix | Delete
$option_instance = WPSEO_Options::get_option_instance( $option_name );
[774] Fix | Delete
if ( $option_instance === false ) {
[775] Fix | Delete
continue;
[776] Fix | Delete
}
[777] Fix | Delete
foreach ( $settings[ $option_name ] as $setting_name => $setting_value ) {
[778] Fix | Delete
if ( $option_instance->is_disabled( $setting_name ) ) {
[779] Fix | Delete
$disabled_settings[ $option_name ][ $setting_name ] = 'network';
[780] Fix | Delete
}
[781] Fix | Delete
}
[782] Fix | Delete
}
[783] Fix | Delete
[784] Fix | Delete
// Remove disabled on multisite settings.
[785] Fix | Delete
if ( \is_multisite() ) {
[786] Fix | Delete
foreach ( self::DISABLED_ON_MULTISITE_SETTINGS as $option_name => $disabled_ms_settings ) {
[787] Fix | Delete
if ( \array_key_exists( $option_name, $disabled_settings ) ) {
[788] Fix | Delete
foreach ( $disabled_ms_settings as $disabled_ms_setting ) {
[789] Fix | Delete
$disabled_settings[ $option_name ][ $disabled_ms_setting ] = 'multisite';
[790] Fix | Delete
}
[791] Fix | Delete
}
[792] Fix | Delete
}
[793] Fix | Delete
}
[794] Fix | Delete
[795] Fix | Delete
if ( \array_key_exists( 'wpseo', $disabled_settings ) && ! $this->language_helper->has_inclusive_language_support( $site_language ) ) {
[796] Fix | Delete
$disabled_settings['wpseo']['inclusive_language_analysis_active'] = 'language';
[797] Fix | Delete
}
[798] Fix | Delete
[799] Fix | Delete
return $disabled_settings;
[800] Fix | Delete
}
[801] Fix | Delete
[802] Fix | Delete
/**
[803] Fix | Delete
* Retrieves the replacement variables.
[804] Fix | Delete
*
[805] Fix | Delete
* @return array The replacement variables.
[806] Fix | Delete
*/
[807] Fix | Delete
protected function get_replacement_variables() {
[808] Fix | Delete
$recommended_replace_vars = new WPSEO_Admin_Recommended_Replace_Vars();
[809] Fix | Delete
$specific_replace_vars = new WPSEO_Admin_Editor_Specific_Replace_Vars();
[810] Fix | Delete
$replacement_variables = $this->replace_vars->get_replacement_variables_with_labels();
[811] Fix | Delete
[812] Fix | Delete
return [
[813] Fix | Delete
'variables' => $replacement_variables,
[814] Fix | Delete
'recommended' => $recommended_replace_vars->get_recommended_replacevars(),
[815] Fix | Delete
'specific' => $specific_replace_vars->get(),
[816] Fix | Delete
'shared' => $specific_replace_vars->get_generic( $replacement_variables ),
[817] Fix | Delete
];
[818] Fix | Delete
}
[819] Fix | Delete
[820] Fix | Delete
/**
[821] Fix | Delete
* Retrieves the schema.
[822] Fix | Delete
*
[823] Fix | Delete
* @param array $post_types The post types.
[824] Fix | Delete
*
[825] Fix | Delete
* @return array The schema.
[826] Fix | Delete
*/
[827] Fix | Delete
protected function get_schema( array $post_types ) {
[828] Fix | Delete
$schema = [];
[829] Fix | Delete
[830] Fix | Delete
foreach ( $this->schema_types->get_article_type_options() as $article_type ) {
[831] Fix | Delete
$schema['articleTypes'][ $article_type['value'] ] = [
[832] Fix | Delete
'label' => $article_type['name'],
[833] Fix | Delete
'value' => $article_type['value'],
[834] Fix | Delete
];
[835] Fix | Delete
}
[836] Fix | Delete
[837] Fix | Delete
foreach ( $this->schema_types->get_page_type_options() as $page_type ) {
[838] Fix | Delete
$schema['pageTypes'][ $page_type['value'] ] = [
[839] Fix | Delete
'label' => $page_type['name'],
[840] Fix | Delete
'value' => $page_type['value'],
[841] Fix | Delete
];
[842] Fix | Delete
}
[843] Fix | Delete
[844] Fix | Delete
$schema['articleTypeDefaults'] = [];
[845] Fix | Delete
$schema['pageTypeDefaults'] = [];
[846] Fix | Delete
foreach ( $post_types as $name => $post_type ) {
[847] Fix | Delete
$schema['articleTypeDefaults'][ $name ] = WPSEO_Options::get_default( 'wpseo_titles', "schema-article-type-$name" );
[848] Fix | Delete
$schema['pageTypeDefaults'][ $name ] = WPSEO_Options::get_default( 'wpseo_titles', "schema-page-type-$name" );
[849] Fix | Delete
}
[850] Fix | Delete
[851] Fix | Delete
return $schema;
[852] Fix | Delete
}
[853] Fix | Delete
[854] Fix | Delete
/**
[855] Fix | Delete
* Transforms the post types, to represent them.
[856] Fix | Delete
*
[857] Fix | Delete
* @param WP_Post_Type[] $post_types The WP_Post_Type array to transform.
[858] Fix | Delete
*
[859] Fix | Delete
* @return array The post types.
[860] Fix | Delete
*/
[861] Fix | Delete
protected function transform_post_types( $post_types ) {
[862] Fix | Delete
$transformed = [];
[863] Fix | Delete
$new_post_types = $this->options->get( 'new_post_types', [] );
[864] Fix | Delete
foreach ( $post_types as $post_type ) {
[865] Fix | Delete
$transformed[ $post_type->name ] = [
[866] Fix | Delete
'name' => $post_type->name,
[867] Fix | Delete
'route' => $this->get_route( $post_type->name, $post_type->rewrite, $post_type->rest_base ),
[868] Fix | Delete
'label' => $post_type->label,
[869] Fix | Delete
'singularLabel' => $post_type->labels->singular_name,
[870] Fix | Delete
'hasArchive' => $this->post_type_helper->has_archive( $post_type ),
[871] Fix | Delete
'hasSchemaArticleType' => $this->article_helper->is_article_post_type( $post_type->name ),
[872] Fix | Delete
'menuPosition' => $post_type->menu_position,
[873] Fix | Delete
'isNew' => \in_array( $post_type->name, $new_post_types, true ),
[874] Fix | Delete
];
[875] Fix | Delete
}
[876] Fix | Delete
[877] Fix | Delete
\uasort( $transformed, [ $this, 'compare_post_types' ] );
[878] Fix | Delete
[879] Fix | Delete
return $transformed;
[880] Fix | Delete
}
[881] Fix | Delete
[882] Fix | Delete
/**
[883] Fix | Delete
* Compares two post types.
[884] Fix | Delete
*
[885] Fix | Delete
* @param array $a The first post type.
[886] Fix | Delete
* @param array $b The second post type.
[887] Fix | Delete
*
[888] Fix | Delete
* @return int The order.
[889] Fix | Delete
*/
[890] Fix | Delete
protected function compare_post_types( $a, $b ) {
[891] Fix | Delete
if ( $a['menuPosition'] === null && $b['menuPosition'] !== null ) {
[892] Fix | Delete
return 1;
[893] Fix | Delete
}
[894] Fix | Delete
if ( $a['menuPosition'] !== null && $b['menuPosition'] === null ) {
[895] Fix | Delete
return -1;
[896] Fix | Delete
}
[897] Fix | Delete
[898] Fix | Delete
if ( $a['menuPosition'] === null && $b['menuPosition'] === null ) {
[899] Fix | Delete
// No position specified, order alphabetically by label.
[900] Fix | Delete
return \strnatcmp( $a['label'], $b['label'] );
[901] Fix | Delete
}
[902] Fix | Delete
[903] Fix | Delete
return ( ( $a['menuPosition'] < $b['menuPosition'] ) ? -1 : 1 );
[904] Fix | Delete
}
[905] Fix | Delete
[906] Fix | Delete
/**
[907] Fix | Delete
* Transforms the taxonomies, to represent them.
[908] Fix | Delete
*
[909] Fix | Delete
* @param WP_Taxonomy[] $taxonomies The WP_Taxonomy array to transform.
[910] Fix | Delete
* @param string[] $post_type_names The post type names.
[911] Fix | Delete
*
[912] Fix | Delete
* @return array The taxonomies.
[913] Fix | Delete
*/
[914] Fix | Delete
protected function transform_taxonomies( $taxonomies, $post_type_names ) {
[915] Fix | Delete
$transformed = [];
[916] Fix | Delete
$new_taxonomies = $this->options->get( 'new_taxonomies', [] );
[917] Fix | Delete
foreach ( $taxonomies as $taxonomy ) {
[918] Fix | Delete
$transformed[ $taxonomy->name ] = [
[919] Fix | Delete
'name' => $taxonomy->name,
[920] Fix | Delete
'route' => $this->get_route( $taxonomy->name, $taxonomy->rewrite, $taxonomy->rest_base ),
[921] Fix | Delete
'label' => $taxonomy->label,
[922] Fix | Delete
'showUi' => $taxonomy->show_ui,
[923] Fix | Delete
'singularLabel' => $taxonomy->labels->singular_name,
[924] Fix | Delete
'postTypes' => \array_filter(
[925] Fix | Delete
$taxonomy->object_type,
[926] Fix | Delete
static function ( $object_type ) use ( $post_type_names ) {
[927] Fix | Delete
return \in_array( $object_type, $post_type_names, true );
[928] Fix | Delete
}
[929] Fix | Delete
),
[930] Fix | Delete
'isNew' => \in_array( $taxonomy->name, $new_taxonomies, true ),
[931] Fix | Delete
];
[932] Fix | Delete
}
[933] Fix | Delete
[934] Fix | Delete
\uasort(
[935] Fix | Delete
$transformed,
[936] Fix | Delete
static function ( $a, $b ) {
[937] Fix | Delete
return \strnatcmp( $a['label'], $b['label'] );
[938] Fix | Delete
}
[939] Fix | Delete
);
[940] Fix | Delete
[941] Fix | Delete
return $transformed;
[942] Fix | Delete
}
[943] Fix | Delete
[944] Fix | Delete
/**
[945] Fix | Delete
* Gets the route from a name, rewrite and rest_base.
[946] Fix | Delete
*
[947] Fix | Delete
* @param string $name The name.
[948] Fix | Delete
* @param array $rewrite The rewrite data.
[949] Fix | Delete
* @param string $rest_base The rest base.
[950] Fix | Delete
*
[951] Fix | Delete
* @return string The route.
[952] Fix | Delete
*/
[953] Fix | Delete
protected function get_route( $name, $rewrite, $rest_base ) {
[954] Fix | Delete
$route = $name;
[955] Fix | Delete
if ( isset( $rewrite['slug'] ) ) {
[956] Fix | Delete
$route = $rewrite['slug'];
[957] Fix | Delete
}
[958] Fix | Delete
if ( ! empty( $rest_base ) ) {
[959] Fix | Delete
$route = $rest_base;
[960] Fix | Delete
}
[961] Fix | Delete
// Always strip leading slashes.
[962] Fix | Delete
while ( \substr( $route, 0, 1 ) === '/' ) {
[963] Fix | Delete
$route = \substr( $route, 1 );
[964] Fix | Delete
}
[965] Fix | Delete
[966] Fix | Delete
return \rawurlencode( $route );
[967] Fix | Delete
}
[968] Fix | Delete
[969] Fix | Delete
/**
[970] Fix | Delete
* Retrieves the fallbacks.
[971] Fix | Delete
*
[972] Fix | Delete
* @return array The fallbacks.
[973] Fix | Delete
*/
[974] Fix | Delete
protected function get_fallbacks() {
[975] Fix | Delete
$site_logo_id = \get_option( 'site_logo' );
[976] Fix | Delete
if ( ! $site_logo_id ) {
[977] Fix | Delete
$site_logo_id = \get_theme_mod( 'custom_logo' );
[978] Fix | Delete
}
[979] Fix | Delete
if ( ! $site_logo_id ) {
[980] Fix | Delete
$site_logo_id = '0';
[981] Fix | Delete
}
[982] Fix | Delete
[983] Fix | Delete
return [
[984] Fix | Delete
'siteLogoId' => $site_logo_id,
[985] Fix | Delete
];
[986] Fix | Delete
}
[987] Fix | Delete
}
[988] Fix | Delete
[989] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function