Applications


WordPress how to add all menus into post

1. Use a shortcode to display all menus

You can create a custom shortcode that lists all registered menus, then insert that shortcode into any post.

Here’s a simple way to do it:

Step 1: Add this to your theme’s functions.php file:

function list_all_menus_shortcode() {
    $menus = wp_get_nav_menus();
    $output = '';

    if (!empty($menus)) {
        foreach ($menus as $menu) {
            $menu_items = wp_get_nav_menu_items($menu->term_id);

            if (!empty($menu_items)) {
                $output .= '<h2>' . esc_html($menu->name) . '</h2>';
                $output .= '<ul>';

                foreach ($menu_items as $item) {
                    $output .= '<li><a href="' . esc_url($item->url) . '">' . esc_html($item->title) . '</a></li>';
                }

                $output .= '</ul>';
            }
        }
    } else {
        $output = '<p>No menus found.</p>';
    }

    return $output;
}
add_shortcode('all_menus', 'list_all_menus_shortcode');


Step 2: Use [all_menus] shortcode inside your post content.

✅ Now when you insert [all_menus] into any post or page, it will automatically display all menus with their items.


2. Use a shortcode to print all menu names quoted and separated by a comma

function print_all_menu_names_shortcode() {
    $menus = wp_get_nav_menus();
    $names = [];

    if (!empty($menus)) {
        foreach ($menus as $menu) {
            $names[] = '"' . esc_html($menu->name) . '"';
        }
        return implode(', ', $names);
    } else {
        return 'No menus found.';
    }
}
add_shortcode('print_menu_names', 'print_all_menu_names_shortcode');


How to use:

  • Add the code to your theme’s functions.php or your custom plugin.
  • Then just put this shortcode wherever you want the menu names to appear:
[print_menu_names]

✅ This will output something like:

"Main Menu", "Footer Menu", "Sidebar Menu"


3. Use a shortcode to print all menus in a custom sort

Each WordPress menu has a unique ID ($menu->term_id) and a name ($menu->name).
You can identify them either by their ID or by their name.

Then, you manually set the order you want.


Here’s how you can do it:

Update the shortcode function like this:

function list_all_menus_shortcode() {
    $menus = wp_get_nav_menus();
    $output = '';

    if (!empty($menus)) {
        // Step 1: Define the hard-coded order you want (by menu ID or menu name)
        $custom_order = [
            'Main Menu',     // by name
            'Footer Menu',
            'Sidebar Menu',
        ];
        
        // Step 2: Reorder the menus according to your custom order
        $ordered_menus = [];
        foreach ($custom_order as $name) {
            foreach ($menus as $menu) {
                if ($menu->name === $name) { // use $menu->term_id if you want to match by ID
                    $ordered_menus[] = $menu;
                    break;
                }
            }
        }

        foreach ($ordered_menus as $menu) {
            $menu_items = wp_get_nav_menu_items($menu->term_id);

            if (!empty($menu_items)) {
                $output .= '<h2>' . esc_html($menu->name) . '</h2>';
                $output .= '<ul>';

                foreach ($menu_items as $item) {
                    $output .= '<li><a href="' . esc_url($item->url) . '">' . esc_html($item->title) . '</a></li>';
                }

                $output .= '</ul>';
            }
        }
    } else {
        $output = '<p>No menus found.</p>';
    }

    return $output;
}
add_shortcode('all_menus', 'list_all_menus_shortcode');


Important notes:

  • Replace "Main Menu", "Footer Menu", etc., in $custom_order with your real menu names.
  • Alternatively, you can match by term_id instead of name if you prefer.

👉 To find your menu IDs easily, go to:
WordPress Dashboard → Appearance → Menus, then hover over a menu — you’ll see a URL like:

/wp-admin/nav-menus.php?action=edit&amp;menu=45

Here, menu=45 means term_id = 45.

If you want to match by ID, change the matching line:

if ($menu->term_id == $id) {

instead of name matching.

A contemporary logo for a Cypriot ethical hacking group, combining traditional and digital motifs. The logo includes an abstract representation of a castle tower, signifying defense and strategy, with a circuit board pattern. The Cyprus flag is cleverly integrated into the tower design. Above the tower flies a stylized eagle, representing vigilance in cybersecurity. The group's initials, 'CEH', are interwoven into the base of the tower in a futuristic typeface.

How to Export Your Viber Chat History

Need to save a record of your Viber chats? It’s easy! Just follow these simple steps to export your messages:

  1. Open Viber on your mobile device.
  2. Go to More (usually found in the bottom-right corner).
  3. Click on Settings.
  4. Tap Calls and Messages.
  5. Select Email message history.

Alternatively, you can open this link directly from your mobile device:

viber://more/email_message_history_on

This action will allow you to save a zip file with all your conversations, which you can later share using other conventional methods.

Please note that the export file will only contain text messages and no media (photos, videos, etc.). If you need to save media, you’ll have to back those up separately.

That’s it! Your chat history will be emailed to the address you choose, and you can keep it safely stored for future reference.

An illustration for a logo that embodies a team of Cypriot ethical hackers, incorporating a sleek, modern shield with a stylized silhouette of Cyprus in the center. The shield is adorned with digital accents like a binary code halo and a keyboard pattern. The acronym 'CEH' for 'Cypriot Ethical Hackers' is boldly positioned across the shield, with a cybernetic font, set against a background that hints at a digital network.

How to speed up Youtube videos more than 2x

Using the playbackRate command to adjust video playback speed on YouTube slightly differs from using it on a standard HTML video element. This is because YouTube uses its player interface, built on top of the HTML5 video API but includes additional features and customizations.

Here’s a step-by-step guide on how to use the playbackRate command on YouTube:

Open YouTube and Select a Video: Navigate to YouTube and open the video you want to adjust.

Access the Browser Console:

  • Open Developer Tools in your browser. This is usually done by right-clicking on the page and selecting “Inspect,” or by pressing Ctrl+Shift+I (Windows/Linux) or Cmd+Option+I (Mac).
  • Switch to the “Console” tab.

Use the Correct JavaScript Command:

  • On YouTube, the video player element can be accessed differently. The command to adjust the playback speed might look like this:
  • document.querySelector('video').playbackRate = X;
  • Replace X with the desired playback speed. For example, 1.5 for 1.5x speed, or 0.75 for 75% of the normal speed.
document.querySelector('video').playbackRate = X;

For regular use, the built-in speed settings in the YouTube player (accessible via the gear icon in the player controls) are the recommended and easiest method to change playback speed. They provide a range of speed options in a user-friendly manner without the need for coding or console commands.

Understanding the playbackRate Command in JavaScript

document.getElementsByTagName("video")[0].playbackRate = X;

In the dynamic world of web development, JavaScript stands as a cornerstone technology, enabling developers and users to interact with web content in powerful ways. Among its many features is the ability to control video playback on web pages. This blog post delves into one such aspect: using the playbackRate command to control the speed of video playback.

What is playbackRate?

The playbackRate property in JavaScript is a feature of the HTML5 Video API. It allows developers to change the speed at which a video plays on a web page. The command document.getElementsByTagName("video")[0].playbackRate = X; is a practical implementation of this feature.

Breaking Down the Command

  • document: This is the root node of the HTML document.
  • getElementsByTagName("video"): This method returns a live HTMLCollection of elements with the specified tag name, in this case, “video”.
  • [0]: Since getElementsByTagName returns a collection, [0] accesses the first video element in the collection. If there are multiple videos, changing the index accesses different videos.
  • playbackRate: This property sets or returns the current playback speed of the video. 1 is the normal speed, values greater than 1 increase the speed, and values between 0 and 1 slow it down.
  • X: This represents the desired playback speed. For instance, setting X to 1.5 would make the video play at 1.5 times its normal speed.

Practical Use Cases

  • Educational Content: Speed up or slow down instructional videos to match the learner’s pace.
  • Accessibility: Adjust video speed for viewers who need more time to process visual content.
  • Entertainment: Speed through slow sections of videos or slow down for detailed analysis of scenes.

How to Implement

  1. Identify the Video: Ensure the video element is correctly targeted, especially in pages with multiple videos.
  2. Set the Playback Speed: Assign the desired speed to playbackRate. For example, document.getElementsByTagName("video")[0].playbackRate = 1.5; speeds up the first video by 50%.
  3. Test and Debug: Verify that the speed adjustment works across different browsers and devices.

Best Practices

  • User Control: Ideally, provide a user interface for viewers to adjust the speed according to their preference.
  • Browser Compatibility: Test the functionality in various browsers to ensure consistent behavior.
  • Fallbacks: In cases where playbackRate is not supported, consider alternative methods or inform the user.

Conclusion

The playbackRate property in JavaScript offers a simple yet powerful tool for enhancing the video viewing experience on web pages. By understanding and utilizing this command, developers can provide more dynamic and user-friendly web applications. Whether it’s for educational purposes, accessibility, or just personal preference, the ability to control video playback speed is an invaluable feature in today’s web landscape.