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.../themes/Divi/includes/builder/frontend.../theme-bu...
File: theme-builder.php
array(
[500] Fix | Delete
'key' => $mark_meta_key,
[501] Fix | Delete
'compare' => 'NOT EXISTS',
[502] Fix | Delete
'value' => 'https://core.trac.wordpress.org/ticket/23268',
[503] Fix | Delete
),
[504] Fix | Delete
),
[505] Fix | Delete
'no_found_rows' => true,
[506] Fix | Delete
'update_post_meta_cache' => false,
[507] Fix | Delete
'update_post_term_cache' => false,
[508] Fix | Delete
) );
[509] Fix | Delete
[510] Fix | Delete
foreach ( $posts_to_mark->posts as $post_id ) {
[511] Fix | Delete
update_post_meta( $post_id, $mark_meta_key, date('Y-m-d H:i:s') );
[512] Fix | Delete
}
[513] Fix | Delete
[514] Fix | Delete
// Trash any posts marked more than 7 days ago.
[515] Fix | Delete
// We only trash up to 50 posts at a time in order to avoid performance issues.
[516] Fix | Delete
// Any leftover posts will be cleaned up eventually whenever this is called again.
[517] Fix | Delete
$posts_to_trash = new WP_Query( array(
[518] Fix | Delete
'post_type' => array(
[519] Fix | Delete
ET_THEME_BUILDER_TEMPLATE_POST_TYPE,
[520] Fix | Delete
ET_THEME_BUILDER_HEADER_LAYOUT_POST_TYPE,
[521] Fix | Delete
ET_THEME_BUILDER_BODY_LAYOUT_POST_TYPE,
[522] Fix | Delete
ET_THEME_BUILDER_FOOTER_LAYOUT_POST_TYPE,
[523] Fix | Delete
),
[524] Fix | Delete
'posts_per_page' => 50,
[525] Fix | Delete
'fields' => 'ids',
[526] Fix | Delete
'meta_query' => array(
[527] Fix | Delete
array(
[528] Fix | Delete
'key' => $mark_meta_key,
[529] Fix | Delete
'compare' => '<',
[530] Fix | Delete
'value' => date('Y-m-d H:i:s', time() - 60 * 60 * 24 * 7),
[531] Fix | Delete
'type' => 'DATE',
[532] Fix | Delete
),
[533] Fix | Delete
),
[534] Fix | Delete
'no_found_rows' => true,
[535] Fix | Delete
'update_post_meta_cache' => false,
[536] Fix | Delete
'update_post_term_cache' => false,
[537] Fix | Delete
) );
[538] Fix | Delete
[539] Fix | Delete
foreach ( $posts_to_trash->posts as $post_id ) {
[540] Fix | Delete
wp_trash_post( $post_id );
[541] Fix | Delete
}
[542] Fix | Delete
}
[543] Fix | Delete
[544] Fix | Delete
/**
[545] Fix | Delete
* Get the template settings options for a given post type.
[546] Fix | Delete
*
[547] Fix | Delete
* @since 4.0
[548] Fix | Delete
*
[549] Fix | Delete
* @param string $post_type_name
[550] Fix | Delete
*
[551] Fix | Delete
* @return array
[552] Fix | Delete
*/
[553] Fix | Delete
function et_theme_builder_get_template_settings_options_for_post_type( $post_type_name ) {
[554] Fix | Delete
$post_type = get_post_type_object( $post_type_name );
[555] Fix | Delete
[556] Fix | Delete
if ( null === $post_type ) {
[557] Fix | Delete
return array();
[558] Fix | Delete
}
[559] Fix | Delete
[560] Fix | Delete
$post_type_plural = ucwords( $post_type->labels->name );
[561] Fix | Delete
$taxonomies = get_object_taxonomies( $post_type_name, 'objects' );
[562] Fix | Delete
[563] Fix | Delete
$group = array(
[564] Fix | Delete
'label' => et_core_intentionally_unescaped( $post_type_plural, 'react_jsx' ),
[565] Fix | Delete
'settings' => array(
[566] Fix | Delete
array(
[567] Fix | Delete
'id' => implode(
[568] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[569] Fix | Delete
array( 'singular', 'post_type', $post_type_name, 'all' )
[570] Fix | Delete
),
[571] Fix | Delete
// Translators: %1$s: Post type plural name.
[572] Fix | Delete
'label' => et_core_intentionally_unescaped( sprintf( __( 'All %1$s', 'et_builder' ), $post_type_plural ), 'react_jsx' ),
[573] Fix | Delete
'priority' => 70,
[574] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_singular_post_type_all',
[575] Fix | Delete
),
[576] Fix | Delete
),
[577] Fix | Delete
);
[578] Fix | Delete
[579] Fix | Delete
if ( 'page' === $post_type_name ) {
[580] Fix | Delete
$group['settings'][] = array(
[581] Fix | Delete
'id' => 'homepage',
[582] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Homepage', 'et_builder' ), 'react_jsx' ),
[583] Fix | Delete
'priority' => 110,
[584] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_homepage',
[585] Fix | Delete
);
[586] Fix | Delete
} else if ( 'post' === $post_type_name || $post_type->has_archive ) {
[587] Fix | Delete
$group['settings'][] = array(
[588] Fix | Delete
'id' => implode(
[589] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[590] Fix | Delete
array( 'archive', 'post_type', $post_type_name )
[591] Fix | Delete
),
[592] Fix | Delete
'label' => 'post' === $post_type_name
[593] Fix | Delete
? et_core_intentionally_unescaped( __( 'Blog', 'et_builder' ), 'react_jsx' )
[594] Fix | Delete
// Translators: %1$s: Post type plural name.
[595] Fix | Delete
: et_core_intentionally_unescaped( sprintf( __( '%1$s Archive Page', 'et_builder' ), $post_type_plural ), 'react_jsx' ),
[596] Fix | Delete
'title' => trim( str_replace( home_url(), '', get_post_type_archive_link( $post_type_name ) ), '/' ),
[597] Fix | Delete
'priority' => 60,
[598] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_post_type',
[599] Fix | Delete
);
[600] Fix | Delete
}
[601] Fix | Delete
[602] Fix | Delete
foreach ( $taxonomies as $taxonomy ) {
[603] Fix | Delete
/**
[604] Fix | Delete
* Filters whether the given taxonomy should be used to generate the following template settings:
[605] Fix | Delete
* - Posts with Specific %
[606] Fix | Delete
*
[607] Fix | Delete
* @since 4.3.3
[608] Fix | Delete
*
[609] Fix | Delete
* @param boolean $show
[610] Fix | Delete
*/
[611] Fix | Delete
$show = apply_filters( 'et_theme_builder_template_settings_options_posts_with_specific_term', $taxonomy->show_ui );
[612] Fix | Delete
[613] Fix | Delete
if ( ! $show ) {
[614] Fix | Delete
continue;
[615] Fix | Delete
}
[616] Fix | Delete
[617] Fix | Delete
$taxonomy_plural = ucwords( $taxonomy->labels->name );
[618] Fix | Delete
$use_short_plural = in_array( $taxonomy->name, array(
[619] Fix | Delete
'project_category',
[620] Fix | Delete
'project_tag',
[621] Fix | Delete
'product_cat',
[622] Fix | Delete
'product_tag',
[623] Fix | Delete
), true );
[624] Fix | Delete
[625] Fix | Delete
// Translators: %1$s: Post type plural name; %2$s: Taxonomy plural name.
[626] Fix | Delete
$label = et_core_intentionally_unescaped(
[627] Fix | Delete
sprintf(
[628] Fix | Delete
__( '%1$s with Specific %2$s', 'et_builder' ),
[629] Fix | Delete
$post_type_plural,
[630] Fix | Delete
$use_short_plural ? esc_html__( 'Tags', 'et_builder' ) : $taxonomy_plural
[631] Fix | Delete
),
[632] Fix | Delete
'react_jsx' );
[633] Fix | Delete
[634] Fix | Delete
if ( in_array( $taxonomy->name, array( 'category', 'project_category', 'product_cat' ), true ) ) {
[635] Fix | Delete
// Translators: %1$s: Post type plural name; %2$s: Taxonomy plural name.
[636] Fix | Delete
$label = et_core_intentionally_unescaped(
[637] Fix | Delete
sprintf(
[638] Fix | Delete
__( '%1$s in Specific %2$s', 'et_builder' ),
[639] Fix | Delete
$post_type_plural,
[640] Fix | Delete
$use_short_plural ? esc_html__( 'Categories', 'et_builder' ) : $taxonomy_plural
[641] Fix | Delete
),
[642] Fix | Delete
'react_jsx' );
[643] Fix | Delete
}
[644] Fix | Delete
[645] Fix | Delete
$group['settings'][] = array(
[646] Fix | Delete
'id' => implode(
[647] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[648] Fix | Delete
array( 'singular', 'taxonomy', $taxonomy->name, 'term', 'id', '' )
[649] Fix | Delete
),
[650] Fix | Delete
// Translators: %1$s: Post type plural name; %2$s: Taxonomy plural name.
[651] Fix | Delete
'label' => $label,
[652] Fix | Delete
'priority' => 80,
[653] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_singular_taxonomy_term_id',
[654] Fix | Delete
'options' => array(
[655] Fix | Delete
'label' => $taxonomy_plural,
[656] Fix | Delete
'type' => 'taxonomy',
[657] Fix | Delete
'value' => $taxonomy->name,
[658] Fix | Delete
),
[659] Fix | Delete
);
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
$group['settings'][] = array(
[663] Fix | Delete
'id' => implode(
[664] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[665] Fix | Delete
array( 'singular', 'post_type', $post_type_name, 'id', '' )
[666] Fix | Delete
),
[667] Fix | Delete
// Translators: %1$s: Post type plural name.
[668] Fix | Delete
'label' => et_core_intentionally_unescaped( sprintf( __( 'Specific %1$s', 'et_builder' ), $post_type_plural ), 'react_jsx' ),
[669] Fix | Delete
'priority' => 100,
[670] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_singular_post_type_id',
[671] Fix | Delete
'options' => array(
[672] Fix | Delete
'label' => $post_type_plural,
[673] Fix | Delete
'type' => 'post_type',
[674] Fix | Delete
'value' => $post_type_name,
[675] Fix | Delete
),
[676] Fix | Delete
);
[677] Fix | Delete
[678] Fix | Delete
if ( is_post_type_hierarchical( $post_type_name ) ) {
[679] Fix | Delete
$group['settings'][] = array(
[680] Fix | Delete
'id' => implode(
[681] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[682] Fix | Delete
array( 'singular', 'post_type', $post_type_name, 'children', 'id', '' )
[683] Fix | Delete
),
[684] Fix | Delete
// Translators: %1$s: Post type plural name.
[685] Fix | Delete
'label' => et_core_intentionally_unescaped( sprintf( __( 'Children of Specific %1$s', 'et_builder' ), $post_type_plural ), 'react_jsx' ),
[686] Fix | Delete
'priority' => 90,
[687] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_singular_post_type_children_id',
[688] Fix | Delete
'options' => array(
[689] Fix | Delete
'label' => $post_type_plural,
[690] Fix | Delete
'type' => 'post_type',
[691] Fix | Delete
'value' => $post_type_name,
[692] Fix | Delete
),
[693] Fix | Delete
);
[694] Fix | Delete
}
[695] Fix | Delete
[696] Fix | Delete
return $group;
[697] Fix | Delete
}
[698] Fix | Delete
[699] Fix | Delete
[700] Fix | Delete
/**
[701] Fix | Delete
* Get the template settings options for all archive pages.
[702] Fix | Delete
*
[703] Fix | Delete
* @since 4.0
[704] Fix | Delete
*
[705] Fix | Delete
* @return array
[706] Fix | Delete
*/
[707] Fix | Delete
function et_theme_builder_get_template_settings_options_for_archive_pages() {
[708] Fix | Delete
$taxonomies = get_taxonomies( array(
[709] Fix | Delete
'public' => true,
[710] Fix | Delete
'show_ui' => true,
[711] Fix | Delete
'_builtin' => false,
[712] Fix | Delete
), 'objects' );
[713] Fix | Delete
[714] Fix | Delete
ksort( $taxonomies );
[715] Fix | Delete
[716] Fix | Delete
$taxonomies = array_merge(
[717] Fix | Delete
array(
[718] Fix | Delete
'category' => get_taxonomy( 'category' ),
[719] Fix | Delete
'post_tag' => get_taxonomy( 'post_tag' ),
[720] Fix | Delete
),
[721] Fix | Delete
$taxonomies
[722] Fix | Delete
);
[723] Fix | Delete
[724] Fix | Delete
$group = array(
[725] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Archive Pages', 'et_builder' ), 'react_jsx' ),
[726] Fix | Delete
'settings' => array(
[727] Fix | Delete
array(
[728] Fix | Delete
'id' => implode(
[729] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[730] Fix | Delete
array( 'archive', 'all' )
[731] Fix | Delete
),
[732] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'All Archive Pages', 'et_builder' ), 'react_jsx' ),
[733] Fix | Delete
'priority' => 30,
[734] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_all',
[735] Fix | Delete
),
[736] Fix | Delete
),
[737] Fix | Delete
);
[738] Fix | Delete
[739] Fix | Delete
foreach ( $taxonomies as $taxonomy ) {
[740] Fix | Delete
/**
[741] Fix | Delete
* Filters whether the given taxonomy should be used to generate the following template settings:
[742] Fix | Delete
* - All % Pages
[743] Fix | Delete
* - Specific % Pages
[744] Fix | Delete
*
[745] Fix | Delete
* @since 4.3.3
[746] Fix | Delete
*
[747] Fix | Delete
* @param boolean $show
[748] Fix | Delete
*/
[749] Fix | Delete
$show = apply_filters( 'et_theme_builder_template_settings_options_term_pages', $taxonomy->public && $taxonomy->show_ui );
[750] Fix | Delete
[751] Fix | Delete
if ( ! $show ) {
[752] Fix | Delete
continue;
[753] Fix | Delete
}
[754] Fix | Delete
[755] Fix | Delete
$taxonomy_plural = ucwords( $taxonomy->labels->name );
[756] Fix | Delete
$taxonomy_name = $taxonomy_plural;
[757] Fix | Delete
[758] Fix | Delete
if ( 'product_cat' === $taxonomy->name ) {
[759] Fix | Delete
// WooCommerce registers Product Categories with a singular name of Category instead of Product Category...
[760] Fix | Delete
$taxonomy_name = __( 'Product Category', 'et_builder' );
[761] Fix | Delete
} else if ( false !== strpos( $taxonomy->name, 'cat' ) ) {
[762] Fix | Delete
// Use singular for Category.
[763] Fix | Delete
$taxonomy_name = ucwords( $taxonomy->labels->singular_name );
[764] Fix | Delete
}
[765] Fix | Delete
[766] Fix | Delete
$group['settings'][] = array(
[767] Fix | Delete
'id' => implode(
[768] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[769] Fix | Delete
array( 'archive', 'taxonomy', $taxonomy->name, 'all' )
[770] Fix | Delete
),
[771] Fix | Delete
// Translators: %1$s: Taxonomy name.
[772] Fix | Delete
'label' => et_core_intentionally_unescaped( sprintf( __( 'All %1$s Pages', 'et_builder' ), $taxonomy_name ), 'react_jsx' ),
[773] Fix | Delete
'priority' => 70,
[774] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_taxonomy_all',
[775] Fix | Delete
);
[776] Fix | Delete
[777] Fix | Delete
$group['settings'][] = array(
[778] Fix | Delete
'id' => implode(
[779] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[780] Fix | Delete
array( 'archive', 'taxonomy', $taxonomy->name, 'term', 'id', '' )
[781] Fix | Delete
),
[782] Fix | Delete
// Translators: %1$s: Taxonomy name.
[783] Fix | Delete
'label' => et_core_intentionally_unescaped( sprintf( __( 'Specific %1$s Pages', 'et_builder' ), $taxonomy_name ), 'react_jsx' ),
[784] Fix | Delete
'priority' => 75,
[785] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_taxonomy_term_id',
[786] Fix | Delete
'options' => array(
[787] Fix | Delete
'label' => $taxonomy_plural,
[788] Fix | Delete
'type' => 'taxonomy',
[789] Fix | Delete
'value' => $taxonomy->name,
[790] Fix | Delete
),
[791] Fix | Delete
);
[792] Fix | Delete
}
[793] Fix | Delete
[794] Fix | Delete
$group['settings'][] = array(
[795] Fix | Delete
'id' => implode(
[796] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[797] Fix | Delete
array( 'archive', 'user', 'all' )
[798] Fix | Delete
),
[799] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'All Author Pages', 'et_builder' ), 'react_jsx' ),
[800] Fix | Delete
'priority' => 50,
[801] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_user_all',
[802] Fix | Delete
);
[803] Fix | Delete
[804] Fix | Delete
$group['settings'][] = array(
[805] Fix | Delete
'id' => implode(
[806] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[807] Fix | Delete
array( 'archive', 'user', 'id', '' )
[808] Fix | Delete
),
[809] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Specific Author Page', 'et_builder' ), 'react_jsx' ),
[810] Fix | Delete
'priority' => 55,
[811] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_user_id',
[812] Fix | Delete
'options' => array(
[813] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Users', 'et_builder' ), 'react_jsx' ),
[814] Fix | Delete
'type' => 'user',
[815] Fix | Delete
'value' => '',
[816] Fix | Delete
),
[817] Fix | Delete
);
[818] Fix | Delete
[819] Fix | Delete
$group['settings'][] = array(
[820] Fix | Delete
'id' => implode(
[821] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[822] Fix | Delete
array( 'archive', 'user', 'role', '' )
[823] Fix | Delete
),
[824] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Specific Author Page By Role', 'et_builder' ), 'react_jsx' ),
[825] Fix | Delete
'priority' => 53,
[826] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_user_role',
[827] Fix | Delete
'options' => array(
[828] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Roles', 'et_builder' ), 'react_jsx' ),
[829] Fix | Delete
'type' => 'user_role',
[830] Fix | Delete
'value' => '',
[831] Fix | Delete
),
[832] Fix | Delete
);
[833] Fix | Delete
[834] Fix | Delete
$group['settings'][] = array(
[835] Fix | Delete
'id' => implode(
[836] Fix | Delete
ET_THEME_BUILDER_SETTING_SEPARATOR,
[837] Fix | Delete
array( 'archive', 'date', 'all' )
[838] Fix | Delete
),
[839] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'All Date Pages', 'et_builder' ), 'react_jsx' ),
[840] Fix | Delete
'priority' => 40,
[841] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_archive_date_all',
[842] Fix | Delete
);
[843] Fix | Delete
[844] Fix | Delete
$_utils = ET_Core_Data_Utils::instance();
[845] Fix | Delete
[846] Fix | Delete
// Order settings alphabetically by label.
[847] Fix | Delete
$group['settings'] = $_utils->array_sort_by( $group['settings'], 'label' );
[848] Fix | Delete
[849] Fix | Delete
return $group;
[850] Fix | Delete
}
[851] Fix | Delete
[852] Fix | Delete
/**
[853] Fix | Delete
* Get array of template setting options.
[854] Fix | Delete
* Settings that have children should have a trailing ET_THEME_BUILDER_SETTING_SEPARATOR in their id.
[855] Fix | Delete
* Settings that have children should have their id be unique even without the trailing ET_THEME_BUILDER_SETTING_SEPARATOR.
[856] Fix | Delete
*
[857] Fix | Delete
* @since 4.0
[858] Fix | Delete
*
[859] Fix | Delete
* @return array
[860] Fix | Delete
*/
[861] Fix | Delete
function et_theme_builder_get_template_settings_options() {
[862] Fix | Delete
$post_types = get_post_types( array(
[863] Fix | Delete
'public' => true,
[864] Fix | Delete
'_builtin' => false,
[865] Fix | Delete
) );
[866] Fix | Delete
sort( $post_types );
[867] Fix | Delete
[868] Fix | Delete
$options = array(
[869] Fix | Delete
'page' => et_theme_builder_get_template_settings_options_for_post_type( 'page' ),
[870] Fix | Delete
'post' => et_theme_builder_get_template_settings_options_for_post_type( 'post' ),
[871] Fix | Delete
'archive' => et_theme_builder_get_template_settings_options_for_archive_pages(),
[872] Fix | Delete
);
[873] Fix | Delete
[874] Fix | Delete
foreach ( $post_types as $post_type_name ) {
[875] Fix | Delete
$options[ $post_type_name ] = et_theme_builder_get_template_settings_options_for_post_type( $post_type_name );
[876] Fix | Delete
}
[877] Fix | Delete
[878] Fix | Delete
$options['other'] = array(
[879] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Other', 'et_builder' ), 'react_jsx' ),
[880] Fix | Delete
'settings' => array(
[881] Fix | Delete
array(
[882] Fix | Delete
'id' => 'search',
[883] Fix | Delete
'label' => et_core_intentionally_unescaped( __( 'Search Results', 'et_builder' ), 'react_jsx' ),
[884] Fix | Delete
'priority' => 1,
[885] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_search',
[886] Fix | Delete
),
[887] Fix | Delete
array(
[888] Fix | Delete
'id' => '404',
[889] Fix | Delete
'label' => et_core_intentionally_unescaped( __( '404 Page', 'et_builder' ), 'react_jsx' ),
[890] Fix | Delete
'priority' => 1,
[891] Fix | Delete
'validate' => 'et_theme_builder_template_setting_validate_404',
[892] Fix | Delete
),
[893] Fix | Delete
),
[894] Fix | Delete
);
[895] Fix | Delete
[896] Fix | Delete
/**
[897] Fix | Delete
* Filters available template settings options.
[898] Fix | Delete
*
[899] Fix | Delete
* @since 4.0
[900] Fix | Delete
*
[901] Fix | Delete
* @param array
[902] Fix | Delete
*/
[903] Fix | Delete
$options = apply_filters( 'et_theme_builder_template_settings_options', $options );
[904] Fix | Delete
[905] Fix | Delete
return $options;
[906] Fix | Delete
}
[907] Fix | Delete
[908] Fix | Delete
/**
[909] Fix | Delete
* Get flat array of template setting options from the current live and draft theme builder posts.
[910] Fix | Delete
*
[911] Fix | Delete
* @since 4.0
[912] Fix | Delete
*
[913] Fix | Delete
* @return array[]
[914] Fix | Delete
*/
[915] Fix | Delete
function et_theme_builder_get_template_settings_options_for_preloading() {
[916] Fix | Delete
$templates = array_unique( array_merge(
[917] Fix | Delete
et_theme_builder_get_theme_builder_template_ids( true ),
[918] Fix | Delete
et_theme_builder_get_theme_builder_template_ids( false )
[919] Fix | Delete
) );
[920] Fix | Delete
$setting_ids = array();
[921] Fix | Delete
[922] Fix | Delete
foreach ( $templates as $template_id ) {
[923] Fix | Delete
$use_on = get_post_meta( $template_id, '_et_use_on', false );
[924] Fix | Delete
$exclude_from = get_post_meta( $template_id, '_et_exclude_from', false );
[925] Fix | Delete
[926] Fix | Delete
if ( ! is_array( $use_on ) ) {
[927] Fix | Delete
$use_on = array();
[928] Fix | Delete
}
[929] Fix | Delete
[930] Fix | Delete
if ( ! is_array( $exclude_from ) ) {
[931] Fix | Delete
$exclude_from = array();
[932] Fix | Delete
}
[933] Fix | Delete
[934] Fix | Delete
$setting_ids = array_merge( $setting_ids, $use_on, $exclude_from );
[935] Fix | Delete
}
[936] Fix | Delete
[937] Fix | Delete
return et_theme_builder_load_template_setting_options( array_unique( $setting_ids ) );
[938] Fix | Delete
}
[939] Fix | Delete
[940] Fix | Delete
/**
[941] Fix | Delete
* Sanitize an array of use_on/exclude_from conditions stripping out invalid ones.
[942] Fix | Delete
*
[943] Fix | Delete
* @since 4.0
[944] Fix | Delete
*
[945] Fix | Delete
* @param string[] $setting_ids
[946] Fix | Delete
*
[947] Fix | Delete
* @return string[]
[948] Fix | Delete
*/
[949] Fix | Delete
function et_theme_builder_load_template_setting_options( $setting_ids ) {
[950] Fix | Delete
$flat_parent_settings = et_theme_builder_get_flat_template_settings_options();
[951] Fix | Delete
$groups = array();
[952] Fix | Delete
[953] Fix | Delete
foreach ( $setting_ids as $setting_id ) {
[954] Fix | Delete
$parent_id = explode( ET_THEME_BUILDER_SETTING_SEPARATOR, $setting_id );
[955] Fix | Delete
$entity_id = implode( '', array_slice( $parent_id, -1 ) );
[956] Fix | Delete
$parent_id = array_slice( $parent_id, 0, -1 );
[957] Fix | Delete
$parent_id = implode( ET_THEME_BUILDER_SETTING_SEPARATOR, $parent_id ) . ET_THEME_BUILDER_SETTING_SEPARATOR;
[958] Fix | Delete
[959] Fix | Delete
if ( ! isset( $flat_parent_settings[ $parent_id ] ) ) {
[960] Fix | Delete
// Top-level, invalid or unknown setting.
[961] Fix | Delete
continue;
[962] Fix | Delete
}
[963] Fix | Delete
[964] Fix | Delete
if ( ! isset( $groups[ $parent_id ] ) ) {
[965] Fix | Delete
$groups[ $parent_id ] = array(
[966] Fix | Delete
'parent' => $flat_parent_settings[ $parent_id ],
[967] Fix | Delete
'settings' => array(),
[968] Fix | Delete
);
[969] Fix | Delete
}
[970] Fix | Delete
[971] Fix | Delete
$groups[ $parent_id ]['settings'][ $setting_id ] = $entity_id;
[972] Fix | Delete
}
[973] Fix | Delete
[974] Fix | Delete
$settings = array();
[975] Fix | Delete
[976] Fix | Delete
foreach ( $groups as $parent_id => $group ) {
[977] Fix | Delete
$settings = array_merge(
[978] Fix | Delete
$settings,
[979] Fix | Delete
et_theme_builder_get_template_setting_child_options( $group['parent'], $group['settings'] )
[980] Fix | Delete
);
[981] Fix | Delete
}
[982] Fix | Delete
[983] Fix | Delete
return $settings;
[984] Fix | Delete
}
[985] Fix | Delete
[986] Fix | Delete
/**
[987] Fix | Delete
* Get a flat array of template setting options.
[988] Fix | Delete
*
[989] Fix | Delete
* @since 4.0
[990] Fix | Delete
*
[991] Fix | Delete
* @return array
[992] Fix | Delete
*/
[993] Fix | Delete
function et_theme_builder_get_flat_template_settings_options() {
[994] Fix | Delete
$settings = et_theme_builder_get_template_settings_options();
[995] Fix | Delete
$flat = array();
[996] Fix | Delete
[997] Fix | Delete
foreach ( $settings as $group ) {
[998] Fix | Delete
foreach ( $group['settings'] as $setting ) {
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function