- https://wordpress.stackexchange.com/questions/189985/how-to-properly-dequeue-scripts-and-styles-in-child-theme
$menu_locations = get_nav_menu_locations();
if ( $navbar_items = wp_get_nav_menu_items($menu_locations['primary']) ):
$child_items = array();
// pull all child menu items into separate object
foreach ($navbar_items as $key => $item) {
if ($item->menu_item_parent) {
array_push($child_items, $item);
unset($navbar_items[$key]);
}
}
// push child items into their parent item in the original object
foreach ($navbar_items as $item) {
foreach ($child_items as $key => $child) {
if ($child->menu_item_parent == $item->ID) {
if (!$item->child_items) {
$item->child_items = [];
}
array_push($item->child_items, $child);
unset($child_items[$key]);
}
}
}
<ul class="navbar-nav ms-auto">
<?php
foreach ( $navbar_items as $menu_item ):
$current = ( $menu_item->object_id == get_queried_object_id() ) ? 'active' : '';
if($menu_item->child_items){
echo '<li class="nav-item dropdown"><a href="' . $menu_item->url . '" class="nav-link dropdown-toggle ' . $current . '" role="button" data-bs-toggle="dropdown" aria-expanded="false">' . $menu_item->title . '</a>';
echo '<ul class="dropdown-menu" aria-labelledby="navbarDropdown">';
foreach($menu_item->child_items as $item){
$currentChild = ( $item->object_id == get_queried_object_id() ) ? 'active' : '';
echo '<li><a class="dropdown-item ' . $currentChild . '" href="' . $item->url . '">' . $item->title . '</a></li>';
}
echo '</ul>';
echo '</li>';
} else {
echo '<li class="nav-item"><a href="' . $menu_item->url . '" class="nav-link ' . $current . '">' . $menu_item->title . '</a></li>';
}
endforeach;
?>
</ul>
<?php endif; ?>
add_action('init', function(){
if (!session_id()) { session_start(); }
});
/**
* Get the wordpress file absolute path from its url
* @param string $url the file url to get its absolute path
* @return bool|string It returns the absolute path of file
**/
function file_url_to_path( $url ) {
$parsed_url = parse_url( $url );
if( empty($parsed_url['path']) ) return false;
$file = ABSPATH . ltrim( $parsed_url['path'], '/');
if ( file_exists( $file) ) return $file;
return false;
}
add_filter('admin_footer_text', function(){
$my_theme = wp_get_theme(); ?>
<span id="footer-thankyou"><?php esc_html_e('Crafted by', 'theme-prefix'); ?> <a href="<?php echo esc_url($my_theme->get('AuthorURI')); ?>" title="<?php echo esc_attr($my_theme->get('Description')); ?>" target="_blank" rel="noopener noreferrer"><?php echo esc_html($my_theme->get('Author')); ?></a></span>
<?php });
echo __('Hello', 'domain'); // Return the translated string
_e('Hello', 'domain'); // echo the translated string
echo esc_html__('Hello', 'domain'); // Escapes & return the translation string use in HTML output
esc_html_e('Hello', 'domain'); // Escapes & echo the translation string use in HTML output
echo esc_attr__('Hello', 'domain'); // Escapes & return the translation string use in an attribute
esc_attr_e('Hello', 'domain'); // Escapes & echo the translation string use in an attribute
_n(); // Retrieve the plural or single form based on the amount
function lite_excerpt_more( $more ) {
return '...';
}
add_filter( 'excerpt_more', 'lite_excerpt_more' );
function lite_excerpt_length( $length ) {
return 35;
}
add_filter( 'excerpt_length', 'lite_excerpt_length' );
// Function to change email address
function wpb_sender_email( $original_email_address ) {
return 'tim.smith@example.com';
}
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
return 'Tim Smith';
}
// Hooking up our functions to WordPress filters
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );
//Disable plugin auto-update email notification
add_filter('auto_plugin_update_send_email', '__return_false');
//Disable theme auto-update email notification
add_filter('auto_theme_update_send_email', '__return_false');
//Disable automatic "Your Site Has Been Updated..." emails
add_filter( 'auto_core_update_send_email', 'smartwp_disable_core_update_emails', 10, 4 );
function smartwp_disable_core_update_emails( $send, $type, $core_update, $result ) {
if ( !empty($type) && $type == 'success' ) {
return false;
}
return true;
}
// ACF Option page
if( function_exists('acf_add_options_page') ){
acf_add_options_page();
}
// Repeater Field
if( have_rows('repeater_field_name') ):
while( have_rows('repeater_field_name') ) : the_row();
echo get_row_index(); // index (starts with 1)
$sub_value = get_sub_field('sub_field');
endwhile;
else :
echo 'Empty rows.';
endif;