Showing posts with label WordPress. Show all posts

Automatically Hierarchic Categories in Menu - WP Plugin

Automatically Hierarchic Categories in Menu - WordPress Plugin
It allows you to automatically add hierarchical categories to WordPress navigation menus using shortcodes. All sub-categories, if any, are also dynamically created in sub-branches. If you have a long list of categories and subcategories, it takes a lot of time to select items one by one in the WordPress menu section. When there is a change in the categories, it is necessary to add / remove / change the order again in the menu. This WordPress plugin makes it programmatic. Creates auto populated menu with categories.

Automatically Hierarchic Categories in Menu Pro

You can see what the plugin does and how it works with the free version. Pro version works together with the free version, and extends it. More parameters become available with the Pro version.

To get the Pro version by donating or to make the plugin compatible with your theme, you can contact me by filling out the form or write to me on Telegram. Each deal is for one domain. There is no time limit, it can be used for lifetime. You can send your donation to my crypto wallet very quickly. Also, you can transfer money using Binance Pay with zero commissions - fees - charges. If you are not a member, you can create an account by following this link (with reference).

Pro features:
⭐ Custom taxonomy compatibility (tag, custom post category)
⭐ Add sub item at the beginning / end of the link text
⭐ Trailing slash on url link
⭐ Removed credits link
⭐ Show the number of posts in a category
⭐ Selecting root items to be included in the menu by ID
⭐ Sorting menu items (Alphabetical ascending - descending)

To-do list:
☐ Add active CSS class to current element
☐ Using the category's image in the menu item (icon, flag etc.)

Customization is required for themes that use a complex menu structure. I can offer you a professional solution for this. Set up a staging site that is an exact copy of your production website on a temporary domain or subdomain for customization and development. Create your goal menu with manually added items. I can ask you to give me access as an administrator. This will help me to check the structure of the menu and find the solution.

How to automatically add hierarchic categories in WordPress Navigation Menus ?

You can use this WordPress plugin:
Automatically Hierarchic Categories in Menu - WordPress Plugin Download

If you like the plugin, please give 5 stars. Your positive feedback is important for me.

This plugin works well with many themes. If you are using a theme that uses a standard menu structure, the plugin generates the menu with zero configuration. However, some themes produce menus with a different structure. HTML elements and/or their CSS class names may differ. In this case the menu will not appear correctly on your website according to your theme. This is because of your theme, not the plugin. HTML and CSS knowledge may be required depending on the theme. If you have HTML and CSS knowledge, there is the possibility to adapt it to your theme using parameters. For themes that use complex menus, getting Pro version and customization would be the solution for you.

Usage

You can make some customizations for your theme by using parameters and values in the shortcode.

Parameters

Parameter	Default			Description
taxonomy	category		taxonomy type
exclude		false			exclude taxonomy id(s)
level		2			hierarchy max level
prnt_tag	ul			parent tag, dom name
prnt_cls	sub-menu		parent tag, class
chld_tag	li			child tag, dom name
chld_cls	menu-item		child tag, class
chld_chc	menu-item-has-children	child tag, has children class
chld_cid	false			add id to class
a_cls		false			default link class
subi_bfr	false			sub item, before for has children item
subi_aft	false			sub item, after has children item
nline		"\n"			new line
linkget		false			extra get parameter after link
hide_empty	1			hide categories with empty items

taxonomy:
Type of 'taxonomy'. Do not ignore this parameter for post categories. To use WooCommerce product categories as menu items, give the value 'product_cat'. Example: [autocategorymenu taxonomy="product_cat"]
exclude:
Use this parameter for the categories that you want to exclude in the menu. Specify the category IDs that you want to exclude. Combine ID numbers with commas without spaces. Example: exclude="123,124"
level:
Maximum level limit value. If you give the value '1', only the items at the top root level are included in the menu. No subcategories are added to the menu. if you set the value '2', the root categories and the subcategories of these categories are added to the menu.
prnt_tag:
Parent tag's dom name. The HTML element that will enclose the menu items.
prnt_cls:
Parent tag's class. The class value of the HTML element that will contain the menu items.
chld_tag:
The HTML element in which the menu items are sorted.
chld_cls:
The class value of the HTML element that is a menu item.
chld_chc:
The class value of the menu item that has a subcategory.
chld_cid:
To add the ID of the menu item to the class of the menu HTML element, give the value '1'.
a_cls:
To assign the class value of the HTML address link element (a), set a value.
subi_bfr:
The content before the element (a) of the menu item, which is a subcategory.
subi_aft:
The content after the element (a) of the menu item, which is a subcategory.
nline:
Adds new lines after each HTML element. It ensures the readability of the source code. Give a null value to minimize the HTML code. Example: nline=""
linkget:
Get extra parameter after link. The link address domain.com/category instead of domain.com/category?reg=val to replace it with, give the value reg=val.
hide_empty:
By default, categories that do not have any posts in them are not added to the menu. To add categories that do not contain posts to the menu, give the value '0'.

Paid PRO version parameters

Parameter	Default
subi_atb	false
subi_ate	false
t_slash		true
txtcount	false
cntnr_1s	false
cntnr_1e	false
prnt_co1	false
prnt_ca1	false
startids	false
sortname	false
fn_custom	false

subi_atb
Content before the name of the menu item that has the subcategory.
subi_ate
Content after the name of the menu item that has the subcategory.
t_slash
Add trailing slash end of the link.
txtcount
Add total post count to category name. Sample value: " (%s)", Sample result: "Travel (5)"
cntnr_1s
Content before the HTML element enclosing (default ul) the subcategory list.
cntnr_1e
Content after the HTML element enclosing (default ul) the subcategory list.
prnt_co1
CSS selector value to overwrite after level 1 of the class of the HTML element (default ul) containing the subcategory list.
prnt_ca1
CSS selector value to be added after level 1 to the class of the HTML element (default ul) containing the subcategory list.
startids
Selection of root items to be included in the menu by ID. Type the ID(s) of the categories. To exclude the category itself and include all its subcategories, type the negative of the ID value. Combine multiple IDs with commas without spaces. For example: "101,102,-103"
sortname
Sort the category items alphabetically. Available values: "ASC", "DESC"
fn_custom
It is used for special functions written for a fee for theme menus whose structure is not standard.

Sample shortcode (⭐= Pro ) Menu tree Sample screen
Show all categories, even if there is no post in them:
[autocategorymenu level="4" hide_empty="0"]
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 321
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 323
│   └───● Cat Id 33
└───■ Cat Id 4
    └───■ Cat Id 41
        └───■ Cat Id 411
            └───● Cat Id 4111
Show all categories, even if there is no post in them: [autocategorymenu level='4' hide_empty='0']
Include only the category with ID number 2 and all categories in its sub-hierarchy:
⭐[autocategorymenu startids="2"]
────■ Cat Id 2
    ├───● Cat Id 21
    └───● Cat Id 22
Include only the category with ID number 2 and all categories in its sub-hierarchy: [autocategorymenu startids='2']
Include only the category with ID number 32 and all categories in its sub-hierarchy, move 2rd level target category to root level:
⭐[autocategorymenu startids="32"]
────■ Cat Id 32
    ├───● Cat Id 321
    ├───● Cat Id 322
    └───● Cat Id 323
Include only the category with ID number 32 and all categories in its sub-hierarchy, move 3rd level target category to root level: [autocategorymenu startids='32']
Include all subcategories of the category with ID number 3 without including itself:
⭐[autocategorymenu startids="-3"]
┌───● Cat Id 31
├───■ Cat Id 32
│   ├───● Cat Id 321
│   ├───● Cat Id 322
│   └───● Cat Id 323
└───● Cat Id 33
Include all subcategories of the category with ID number 3 without including itself: [autocategorymenu startids='-3']
Include multiple items at once:
⭐[autocategorymenu startids="1,2,-411"]
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
└───● Cat Id 4111
Include multiple items at once: [autocategorymenu startids='1,2,-411']
Sort the menu items in descending order:
⭐[autocategorymenu level="4" sortname="DESC"]
┌───■ Cat Id 4
│   └───■ Cat Id 41
│       └───■ Cat Id 411
│           └───● Cat Id 4111
├───■ Cat Id 3
│   ├───● Cat Id 33
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 323
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 321
│   └───● Cat Id 31
├───■ Cat Id 2
│   ├───● Cat Id 22
│   └───● Cat Id 21
└───● Cat Id 1
			
Sort the menu items in descending order. [autocategorymenu level='4' sortname='DESC']
WoodMart Theme Mobile navigation auto menu:
⭐[autocategorymenu level="4" chld_cls="menu-item menu-simple-dropdown wd-event-hover" a_cls="woodmart-nav-link" prnt_cls="wd-sub-menu" prnt_co1="sub-sub-menu"]

Setup: Appearance > Menus > Manage Locations > Main Menu > [Menu Name]
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 321
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 323
│   └───● Cat Id 33
└───■ Cat Id 4
    └───■ Cat Id 41
        └───■ Cat Id 411
            └───● Cat Id 4111
WoodMart Theme Mobile navigation auto menu
WoodMart Theme desktop main navigation auto menu:
⭐[autocategorymenu level="4" prnt_ca1="wd-dropdown" chld_cls="menu-item menu-simple-dropdown wd-event-hover" a_cls="woodmart-nav-link" prnt_cls="sub-menu wd-sub-menu" cntnr_1e="</div></div>" cntnr_1s="<div class='color-scheme-dark wd-design-default wd-dropdown-menu wd-dropdown'><div class='container'>"]

Setup: WoodMart > Header Builder > Header Base (Edit) > Desktop > Header bottom > Main menu (Edit) > Choose menu > [Menu Name]
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 321
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 323
│   └───● Cat Id 33
└───■ Cat Id 4
    └───■ Cat Id 41
        └───■ Cat Id 411
            └───● Cat Id 4111
WoodMart Theme desktop main navigation auto menu
WoodMart Theme desktop left categories navigation:
⭐[autocategorymenu level="4" prnt_ca1="wd-dropdown" chld_cls="menu-item menu-simple-dropdown wd-event-hover" a_cls="woodmart-nav-link" prnt_cls="sub-menu wd-sub-menu" cntnr_1e="</div></div>" cntnr_1s="<div class='color-scheme-dark wd-design-default wd-dropdown-menu wd-dropdown'><div class='container'>"]

Setup: WoodMart > Header Builder > Header Base (Edit) > Desktop > Header bottom > Categories (Edit) > Choose menu > [Menu Name]
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 321
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 323
│   └───● Cat Id 33
└───■ Cat Id 4
    └───■ Cat Id 41
        └───■ Cat Id 411
            └───● Cat Id 4111
WoodMart Theme desktop left categories navigation auto menu
WoodMart Theme desktop full-width dropdown grid - columns menu:
⭐[autocategorymenu lng_label="My Label" fn_custom="woodmart01"]

Setup: WoodMart > Header Builder > Header Base (Edit) > Desktop > Header bottom > Menu (Edit) > Choose menu > [Menu Name]
Appearance > Menus > Edit Menus > [Menu Name] > Extra options > CSS Classes (optional) : menu-item-has-children
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───● Cat Id 32
│   └───● Cat Id 33
└───■ Cat Id 4
    └───● Cat Id 41
WoodMart Theme desktop full-width dropdown grid - columns menu
Flatsome Theme desktop Main Menu: Please donate
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───● Cat Id 32
│   └───● Cat Id 33
└───■ Cat Id 4
    └───● Cat Id 41
WoodMart Theme desktop left categories navigation auto menu
Flatsome Theme mobile Main Menu: Please donate
┌───● Cat Id 1
├───■ Cat Id 2
│   ├───● Cat Id 21
│   └───● Cat Id 22
├───■ Cat Id 3
│   ├───● Cat Id 31
│   ├───■ Cat Id 32
│   │   ├───● Cat Id 321
│   │   ├───● Cat Id 322
│   │   └───● Cat Id 323
│   └───● Cat Id 33
└───■ Cat Id 4
    └───■ Cat Id 41
        └───■ Cat Id 411
            └───● Cat Id 4111
WoodMart Theme desktop left categories navigation auto menu
Woodmart Demo - test environment: Imported "Woodmart Main" prebuilt website on theme version 7.1.4, WordPress version 6.3.1, PHP version 7.4 / 8.2, WooCommerce Version 8.1.1
Flatsome Demo - test environment: Imported "Classic Shop" prebuilt website on theme version 3.15.6, WordPress version 6.3.1, PHP version 7.4 / 8.2, WooCommerce Version 8.1.1


Shortcode Helper

Your shortcode:
[autocategorymenu]
Reset
Menu items:
Exclude item id(s):
Maximum hierarchy level:
Extra get parameter after link:
<ul id="primary-menu" class="menu-container"> < class=""> ¦ <a href="#" class="">Level 1, Item 1</a> </li> <li class="menu-item"> ¦ <a href="#">Level 1, Item 2</a> </li> <li class="menu-item "> ¦ ¦ <a href="#">Level 1, Item 3</a> ¦ ¦ < class=""> ¦ ¦ <li class="menu-item"> ¦ ¦ ¦ <a href="#">Level 2, Item 3.1</a> ¦ ¦ </li> ¦ </ul> </li> <li class="menu-item menu-item-has-children"> ¦ ¦ <a href="#">Level 1, Item 4</a> ¦ ¦ <ul class="sub-menu"> ¦ ¦ <li class="menu-item"> ¦ ¦ ¦ <a href="#">Level 2, Item 4.1</a> ¦ ¦ </li> ¦ ¦ <li class="menu-item"> ¦ ¦ ¦ <a href="#">Level 2, Item 4.2</a> ¦ ¦ </li> ¦ </ul> </li>
Your shortcode:
[autocategorymenu]


This plugin works with most of WordPress themes. Sometimes you have to use some extra parameters. Here are examples for the free version.

<ul id="primary-menu-list" class="menu-wrapper">
  <li id="menu-item-16006" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16006"><a href="#">Lost password</a></li>
  <li id="menu-item-16004" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-16004"><a href="#">Account</a>
    <button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Open menu</span></button>
    <ul class="sub-menu">
      <li id="menu-item-16003" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16003"><a href="#">Address</a></li>
      <li id="menu-item-16001" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-16001"><a href="#">Orders</a>
        <ul class="sub-menu">
          <li id="menu-item-16002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16002"><a href="#">Downloads</a></li>
        </ul>
      </li>
      <li id="menu-item-16005" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16005"><a href="#">Logout</a></li>
    </ul>
  </li>
</ul>

level : 2
chld_cls : menu-item menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children
chld_chc : menu-item-has-children
subi_aft : <button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Open menu</span></button>

Shortcode : [autocategorymenu hide_empty="0" level="2" chld_cls="menu-item menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children" chld_chc="menu-item-has-children" subi_aft='<button class="sub-menu-toggle" aria-expanded="false" onClick="twentytwentyoneExpandSubMenu(this)"><span class="icon-plus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z" fill="currentColor"/></svg></span><span class="icon-minus"><svg class="svg-icon" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 11h12v2H6z" fill="currentColor"/></svg></span><span class="screen-reader-text">Open menu</span></button>']

<ul class="primary-menu reset-list-style">
  <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Bulk 0</a></li>
  <li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8">
    <a href="#">Bulk 1</a>
    <span class="icon"></span>
    <ul class="sub-menu">
      <li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="#">Bulk 1 . 1</a></li>
      <li id="menu-item-10" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10"><a href="#">Bulk 1 . 2</a></li>
    </ul>
  </li>
</ul>

subi_aft : <span class="icon"></span>

Shortcode : [autocategorymenu hide_empty="0" level="3" subi_aft='<span class="icon"></span>']

<div class="menu-main-menu-auto-container">
  <ul id="menu-main-menu-auto" class="main-menu" tabindex="0">
    <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Bulk 0</a></li>
    <li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8">
      <a href="#" aria-haspopup="true" aria-expanded="false">Bulk 1</a>
      <span class="submenu-expand" tabindex="-1">
        <svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path><path fill="none" d="M0 0h24v24H0V0z"></path></svg>
      </span>
      <ul class="sub-menu">
        <li id="menu-item--1" class="mobile-parent-nav-menu-item menu-item--1"><span class="menu-item-link-return" tabindex="-1"><svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg>Bulk 1</span></li>
        <li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="#">Bulk 1 . 1</a></li>
        <li id="menu-item-10" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10"><a href="#">Bulk 1 . 2</a></li>
      </ul>
    </li>
  </ul>
</div>

subi_aft : <span class="submenu-expand" tabindex="-1"><svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path><path fill="none" d="M0 0h24v24H0V0z"></path></svg></span>

Shortcode : [autocategorymenu hide_empty="0" subi_aft='<span class="submenu-expand" tabindex="-1"><svg class="svg-icon" width="24" height="24" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path><path fill="none" d="M0 0h24v24H0V0z"></path></svg></span>']

<ul id="ast-hf-menu-1" class="main-header-menu ast-nav-menu ast-flex  submenu-with-border astra-menu-animation-fade  stack-on-mobile">
  <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#" class="menu-link">Bulk 0</a></li>
  <li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8"><a href="#" class="menu-link">Bulk 1</a><button class="ast-menu-toggle" aria-expanded="false"><span class="screen-reader-text">Menu Toggle</span></button>
    <ul class="sub-menu">
      <li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="#" class="menu-link">Bulk 1 . 1</a></li>
      <li id="menu-item-10" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-10"><a href="#" class="menu-link">Bulk 1 . 2</a><button class="ast-menu-toggle" aria-expanded="false"><span class="screen-reader-text">Menu Toggle</span></button>
        <ul class="sub-menu">
          <li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-14"><a href="#" class="menu-link">xx</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

a_cls : menu-link
level : 3

Shortcode : [autocategorymenu hide_empty="0" level="3" a_cls="menu-link"]

<ul id="primary-menu" class="menu">
  <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6"><a href="#">Bulk 0</a></li>
  <li id="menu-item-8" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8"><a href="#">Bulk 1</a>
    <ul class="sub-menu">
      <li id="menu-item-9" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9"><a href="#">Bulk 1 . 1</a></li>
      <li id="menu-item-10" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-10"><a href="#">Bulk 1 . 2</a>
        <ul class="sub-menu">
          <li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-14"><a href="#">xx</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

level : 3

Shortcode : [autocategorymenu hide_empty="0" level="3"]

Shortcode : <nav class="is-horizontal is-content-justification-right is-layout-flex wp-container-2 is-responsive items-justified-right wp-block-navigation" aria-label="Header navigation"> <button aria-haspopup="true" aria-label="Open menu" class="wp-block-navigation__responsive-container-open " data-micromodal-trigger="modal-atakanau-1"> <svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> <rect x="4" y="7.5" width="16" height="1.5"></rect> <rect x="4" y="15" width="16" height="1.5"></rect> </svg> </button> <div class="wp-block-navigation__responsive-container " style="" id="modal-atakanau-1"> <div class="wp-block-navigation__responsive-close" tabindex="-1" data-micromodal-close=""> <div class="wp-block-navigation__responsive-dialog" aria-label="Menu"> <button aria-label="Close menu" data-micromodal-close="" class="wp-block-navigation__responsive-container-close"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"> <path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path> </svg> </button> <div class="wp-block-navigation__responsive-container-content" id="modal-atakanau-1-content"> <ul class="wp-block-navigation__container"> [autocategorymenu taxonomy0="product_cat" hide_empty="0" prnt_cls="wp-block-navigation__submenu-container" chld_cls="wp-block-navigation-item" chld_chc="has-child open-on-hover-click wp-block-navigation-submenu" a_cls="wp-block-navigation-item__content" subi_aft="<button aria-label='Bulk 1 submenu' class='wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle' aria-expanded='false'><svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' aria-hidden='true' focusable='false'><path d='M1.50002 4L6.00002 8L10.5 4' stroke-width='1.5'></path></svg></button>"] </ul> </div> </div> </div> </div> </nav>


== Changelog ==

= Version 2.0.5 =
* Simplified: Code comments
* Bumped up "Tested up to: 6.5"

= Version 2.0.4 =
* Modified: Info links
* Bumped up "Tested up to: 6.4.2"

= Version 2.0.3 =
* Modification: (Minor) Interface
* Bumped up "Tested up to: 6.3.1"

= Version 2.0.2 =
* Fixed: Pro version compatibility
* Bumped up "Tested up to: 6.3"

= Version 2.0.1 =
* Edited: Info text
* Bumped up "Tested up to: 6.2"

= Version 2.0.0 =
* Added: New option, add item id to menu item class
* Added: Taxonomy list on admin panel
* Added: Expandable with paid Pro version
* Dropped: Custom taxonomy support
* Bumped up "Tested up to: 6.1.1"

= Version 1.02 =
* Added: Null array item handler for base category path in PHP
* Fixed: Broken support link
* Bumped up "Tested up to: 6.0.1"

= Version 1.01 =
* Bumped up "Tested up to: 5.9"

= Version 1.00 =
* Initial version released


Recommended Wordpress Plugin
Free WhatsApp plugin for WordPress. Add the clickable WhatsApp button to your site. Compact, Simple, Speedy: CSS chat button. Lightweight and fast loading for best SEO.

woodmart category menu, woodmart mobile menu categories, flatsome mobile menu, wordpress create menu programatically, Astra, Avada, Divi, Hello, OceanWP, Sydney, Betheme, GeneratePress, The7, Porto, Phlox, Enfold, X, Uncode, WoodMart, Flatsome, Bridge, Jupiter, Salient, Newspaper, Hestia, OnePress, Neve, Impreza, Go, Kadence WP, TheGem, uDesign, Kallyas, Total, Brooklyn, Kalium, Soledad, Monstroid2, Shopkeeper, Eduma, Oshine, Visualmodo
Share:

WordPress Çekirdek Sürümünü Elle Yükseltme

Neden WordPress güncellenir?

WordPress neden güncellenir? Neden WordPress güncellemesi çıkıyor?
1

WordPress PHP ile yazılmış bir içerik yönetim sistemidir. Temel olarak PHP komutlarında değişiklikler yapılması ile birlikte, jQuery, Bootstrap gibi kullanılan diğer bileşenler de yenilenir. Bu sebepten, yazılımcılar geliştirdikleri kaynak kodlarında değişiklikler yaparlar. Başta WordPress'in çekirdek kodları olmak üzere tema şablonlarının ve eklentilerin yeni sürümleri yayınlanır. Sonuçta, WordPress kullanılarak hazırlanan siteler için zaman zaman yazılım güncelleştirmeleri yapılması gerekir.

1

WordPress'i güncellemek gerekir mi?

WordPress neden yeni sürüme güncellenir? WordPress'i son sürüme güncellemek gerekir mi?
1

Sitenizin daha iyi performans ile çalışması ve güvenlik açıklarının kapatılması için güncelleştirmelerin yapılması gerekir.

1
Bazı durumlarda sunucunuzdaki kısıtlamalar yüzünden sitenizi otomatik olarak güncelleme yapamayabilirsiniz. Otomatik güncelleme WordPress'in en son sürümüne yükseltme yapar. Bazen de WordPress'i son sürümü yerine sizin belirleyeceğiniz veya ihtiyacınız olan sürüme yükseltme yapmanız gerekebilir. Bu gibi durumlarda WordPress'i elle yükseltmeniz gerekir.
WordPress Çekirdek Sürümünü Elle Yükseltme

WordPress sürümü elle nasıl yükseltilir?

WordPress sürümü manuel nasıl güncellenir? WordPress çekirdeği elle nasıl yükseltilir?
1

  1. Her şeyden önce, sitenizin tüm yedeğini alın. Sunucunuzdaki dosyaların ve veritabanınızın bir kopyasını oluşturun.
  2. WordPress.org adresinden yükseltmek istediğiniz sürüme ait sıkıştırılmış WordPress dosyasını indirin.
  3. İndirdiğiniz dosyayı kullanılmayan bir dizine çıkarın.
  4. WordPress sitenizdeki tüm eklentileri devre dışı bırakın.
  5. Web sitenizin çalıştığı kök dizininin altındaki ‘wp-includes’ ve ‘wp-admin’ dizinlerini silin.
  6. Sıkıştırılmış dosyadan dışarı çıkardığınız, yeni sürüne ait olan ‘wp-includes’ ve ‘wp-admin’ dizinlerini, sitenizin çalıştığı kök dizininine kopyalayın ( veya taşıyın). Bir önceki adımda sildiğiniz ‘wp-includes’ ve ‘wp-admin’ dizinlerini yenisi ile değiştirmiş olacaksınız.
  7. ‘wp-content’ dizininin kendisini veya içindeki hiçbir dosyayı silmeyin. Yeni sürümün ‘wp-content’ dizinini, çalışan ve varolan sitenin ‘wp-content’ dizininin üzerine koplayalayın. Aynı isimle varolan tüm dosyaları yeni sürüme ait olanlarıyla üzerine yazın ve değiştirin.
  8. Sıkıştırılmış dosyadan dışarı çıkardığınız kök (‘/‘) dizininin altındaki tüm dosyaları, sitenizin çalıştığı kök dizininine kopyalayın. Böylece, varolan dosyaları yeni sürümleri ile değiştirin ve ( varsa ) yeni sürüm ile gelen yeni dosyaları site dizinine koplayamış olacaksınız. Bu aşamada, sitenizin kullandığı ‘wp-config.php’ dosyası etkilenmez çünkü WordPress kurulum dosyası içinde bu dosya bulunmaz.
  9. Yeni sürüme ait ‘wp-config-sample.php’ dosyasını inceleyin. Eğer yeni bir ayar parametresi kullanılıyorsa gerekli olan uyum düzenlemelerini kendi ‘wp-config.php’ dosyanıza ekleyin veya değiştirin.
  10. Eğer daha önce başarısız olan veya yarım kalmış bir güncelleme olduysa, kök dizinin içinde yaratılmış olan ‘.maintenance’ dosyasını silin.
  11. Adres satırına sitenizin devamına ‘/wp-admin/’ yazıp, kullanıcı adınız ve şifrenizi kullanarak sitenizin yönetim paneline giriş yapın.
  12. Gerekli ise, WordPress sizden veritabanınızı güncellemek isteyecektir.
  13. Daha önce devre dışı bıraktığınız eklentilerinizi etkinleştirin.
  14. Tarayıcınızın geçici belleğini temizleyin. Eğer kullanıyorsanız, sunucu tarafındaki tüm sayfa belleklerini silin.
  15. Şimdi WordPress sitenizi güncellemeyi tamamlamış ve WordPress'in yeni sürümüyle kullanıyor olacaksınız. Tebrikler.

1

EtiketWordpress manuel güncelleme,WordPress PHP güncelleme
Share:

Import CDN-Remote Images — WP Plugin

Add external images to the media library without importing, i.e. uploading them to your WordPress site.

Import CDN-Remote Images — WordPress Plugin

Description


By default, adding an image to the WordPress media library requires you to import or upload the image to the WordPress site, which means there must be a copy of the image file stored in the site. This plugin enables you to add an image stored in an external site to the media library by just reading list of remote images using CDN service's (Cloudinary) API. In this way you can host the images in a dedicated server other than the WordPress site, and still be able to show them by various gallery plugins which only take images from the media library.

The plugin provides a dedicated 'Media' -> 'Import images' submenu page.

Supported import options:
* Bulk custom URL import ( Manual )
* Cloudinary API ( Automatic )
(others coming soon)

Installation


1. Upload the plugin files to the `/wp-content/plugins/import-cdn-remote-images` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.

Usage


After installation you can use the plugin to add external media without import:

1. Go to setting page of plugin and save required CDN service parameters such as Cloud name, API key, API secret.
2. Click the 'Media' -> 'Import images' submenu in the side bar.
3. Click 'Update' button and automatically fill in the URLs of the images you want to add.
4. Click the 'Add' button, the remote images will be added.

Changelog


= Version 2.00 =
* Added: Bulk custom URL import
* Improved: User interface
* Fixed: Not showing submenu link for WooCommerce Shop Manager users

= Version 1.0.0 =
* Initial version released

Adding media from the WordPress external media library is as easy as using the built-in library. It is possible to create a WordPress cdn media library. You can use this remote upload WordPress plugin for that. This is a very easy to use WordPress image cdn plugin. Simple wp cdn plugin. WordPress cdn images make the page load faster. In wp, media import is not normally provided. How to connect a CDN for images WordPress? The answer to your question is this import external images plugin. Even if this is not an official cloudinary plugin, it supports cdn cloudinary, just like cloudinary WordPress plugin. cloudinary cdn images can be imported in bulk. Free external media plugin. Serve images using a CDN on WordPress. Use CDN for images to improve website content.
Share:

WordPress fast setup initialize

Preparation for WordPress installation



In order for WordPress to be installed on a server computer, MySQL data definition and codes written in php programming language are required. The first step to starting WordPress installation is to install WordPress files on the server computer. Compressed file size of WordPress files is around 14 MB. These files are over 1900 files in javascript, css, images, php and other formats. There are different options available for uploading files to the server.

• Using FTP only: It is the simplest. But you need to wait more for the process to complete.
»Extract the compressed WordPress file to your computer.
»Upload a large number of files to individual server via FTP.

• Using cPanel: Faster. But you need to have cPanel interface.
»Upload the single compressed file to your server.
»Extract the compressed file in the server with the file manager.

-

Alternative and fast WordPress setup



You can copy WordPress files to your server faster using an alternative method. Install the small php-coded program snippet on the bottom and run it. That's all. You are ready to start WordPress installation with one click.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php 

echo download_wordpress_zip();
// echo download_wordpress_zip('tr_TR');

function download_wordpress_zip( $language = false ){
/**
 * Initialize wordpress for installation with one click.
 *
 * @param string $language		( Optional ) Wordpress setup language. 
 *								false	: (Default) English - en_US
 *								tr_TR	: Turkish
 *								pt_PT	: Portuguese
 *								ja		: Japanese
 *								… See full list of languages: 
 *								 https://make.wordpress.org/polyglots/teams/
 *
 * @return string					Returns process messages.
 *
 * usage
 *		download_wordpress_zip();
 *		download_wordpress_zip('tr_TR');
 *
 * https://atakanau.blogspot.com
 */
	
	$logs = '';
	
	// Generate download link
	// https://wordpress.org/latest.zip
	// https://tr.wordpress.org/latest-tr_TR.zip
	$sub_dir = $language ? explode('_',$language)[0].'.' : '';
	$url = 'https://'.$sub_dir.'wordpress.org/';
	$file_name = 'latest' . ( $language ? '-'.$language : '' ) . '.zip';
	$file_name_local = 'wordpress' . ( $language ? '-'.$language : '' ) . '.zip';
	$logs .= "<pre>Download started: $url.$file_name </pre>";
	// Download zip file from wordpress.org to our server
	file_put_contents($file_name_local, fopen($url.$file_name, 'r'));
	$fileSizeMB = number_format((filesize($file_name_local) / 1024 / 1024), 2);
	$logs .= "<pre>Zip file saved as $file_name_local ($fileSizeMB MB) </pre>";
	// Unzip downloaded file
	if( class_exists('ZipArchive') ){
		$path = pathinfo(realpath($file_name_local), PATHINFO_DIRNAME);
		$zip = new ZipArchive;
		$res = $zip->open($file_name_local);
		if ($res === TRUE) {
			// extract it to the path we determined above
			$zip->extractTo($path);
			$zip->close();
			$logs .= "<pre>$file_name_local extracted to $path</pre>";
		} else {
			$logs .= "<pre>Error, file can not open: $file_name_local</pre>";
		}
	}elseif( function_exists('unzip') ){
		$dir = getcwd();
		unzip($dir,$file_name_local);
		$logs .= "<pre>$file_name_local extracted to $path</pre>";
	}else{
		$logs .= "<pre>Error, file can not unzip: $file_name_local</pre>";
	}
	// Move all files and directories from extracted folder to current directory
	$sourceDir = __DIR__ . DIRECTORY_SEPARATOR . 'wordpress';
	$targetDir = __DIR__ . DIRECTORY_SEPARATOR . '.';
	rmove($sourceDir , $targetDir);
	return $logs;
}

/**
 * A Recursive directory move that allows exclusions. The excluded items in the src will be deleted
 * rather than moved.
 * https://gist.github.com/bubba-h57/5117694
 *
 * @param string $sourceDir			The fully qualified source directory to copy
 * @param string $targetDir			The fully qualified destination directory to copy to
 * @param array $exclusions			An array of preg_match patterns to ignore in the copy process
 * @throws InvalidArgumentException
 * @throws ErrorException
 * @return boolean					Returns TRUE on success, throws an error otherwise.
 */
function rmove($src, $dest, $exclusions = array()){

	// If source is not a directory stop processing
	if(!is_dir($src)) throw new InvalidArgumentException('The source passed in does not appear to be a valid directory: ['.$src.']', 1);

	// If the destination directory does not exist create it
	if(!is_dir($dest)) {
		if(!mkdir($dest, 0, true)){
			throw new InvalidArgumentException('The destination does not exist, and I can not create it: ['.$dest.']', 2);
		}
	}

	// Ensure enclusions parameter is an array.
	if (! is_array($exclusions)) throw new InvalidArgumentException('The exclustion parameter is not an array, it MUST be an array.', 3);

	$emptiedDirs = array();

	// Open the source directory to read in files
	foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($src, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $f) {

		// Check to see if we should ignore this file or directory
		foreach ($exclusions as $pattern){
			if (preg_match($pattern, $f->getRealPath())){
				if ($f->isFile()){
					if (! unlink($f->getRealPath())) throw new ErrorException("Failed to delete file [{$f->getRealPath()}] ", 4);
				}elseif($f->isDir()){
					// we will attempt deleting these after we have moved all the files.
					array_push($emptiedDirs, $f->getRealPath());
				}

				// Because we have to jump up two foreach levels
				continue 2;
			}
		}
		// We need to get a path relative to where we are copying from
		$relativePath = str_replace($src, '', $f->getRealPath());

		// And we can create a destination now.
		$destination = $dest . $relativePath;

		// if it is a file, lets just move that sucker over
		if($f->isFile()) {
			$path_parts = pathinfo($destination);

			// If we don't have a directory for this yet
			if (! is_dir($path_parts['dirname'])){
				// Lets create one!
				if (! mkdir($path_parts['dirname'], 0, true)) throw new ErrorException("Failed to create the destination directory: [{$path_parts['dirname']}]", 5);
			}

			if (! rename($f->getRealPath(), $destination)) throw new ErrorException("Failed to rename file [{$f->getRealPath()}] to [$destination]", 6);

		// if it is a directory, lets handle it
		}elseif($f->isDir()){
			// Check to see if the destination directory already exists
			if (! is_dir($destination)){
				if (! mkdir($destination, 0, true)) throw new ErrorException("Failed to create the destination directory: [$destination]", 7);
			}

			// we will attempt deleting these after we have moved all the files.
			array_push($emptiedDirs, $f->getRealPath());

		// if it is something else, throw a fit. Symlinks can potentially end up here. I haven't tested them yet, but I think isFile() will typically
		// just pick them up and work
		}else{
			throw new ErrorException("I found [{$f->getRealPath()}] yet it appears to be neither a directory nor a file. [{$f->isDot()}] I don't know what to do with that!", 8);
		}
	}

	foreach ($emptiedDirs as $emptyDir){
		// print "Deleting $emptyDir\n";
		if (realpath($emptyDir) == realpath($src)){
			continue;
		}
		if (!is_readable($emptyDir)) throw new ErrorException("The source directory: [$emptyDir] is not Readable", 9);

		// Delete the old directory
		if (! rmdir($emptyDir)){
			// The directory is empty, we should have successfully deleted it.
			if ((count(scandir($emptyDir)) == 2)){
				throw new ErrorException("Failed to delete the source directory: [$emptyDir]", 10);
			}
		}
	}

	// Finally, delete the base of the source directory we just recursed through
	if (! rmdir($src)) throw new ErrorException("Failed to delete the base source directory: [$src]", 11);
	return true;
}


-

How does it works?



This php script downloads the WordPress zip file directly to the server. and extracts (extracts) inside the server with php command.


-

About WordPress



WordPress is the most preferred of the frameworks that can be used to create a website. You can use it without any programming language knowledge. It is an easy to use and simple content management system (C.M.S.). It is suitable for creating a blog site. You can also make use of add-ons, portfolio, service promotion, web sites where you can sell products.


Share:

WooCommerce Sample CSV

Adding WooCommerce Bulk Products

Your store may appear blank right after WooCommerce is installed. There is no product, order or review. This is deliberate so you can start building your own products and tuning the WooCommerce product exactly the way you want it.
But if you want to see what a store full of products looks like, you can batch upload a product using an xml or csv file with a list of products.

WooCommerce Products Import

Download the WooCommerce demo products csv file to your computer:
Download sample CSV file
Then it's time to load!
From the WordPress Dashboard:
1) In the menu: Select Tools > Import .
2) Click Run importer under WooCommerce products (CSV).
3) Choose Choose file and then select the woocommerce-sample-products.csv file you downloaded.
4) A Column Mapping screen appears. Go ahead and finish the process.

Keywords:WooCommerce sample product csv file download, CSV WooCommerce example, woocommerce sample products, woocommerce sample products csv download, sample product csv file download, sample csv file download, sample product csv file woocommerce, woocommerce sample product data, woocommerce csv example, woocommerce csv import sample file, woocommerce import demo products, sample woocommerce products csv, woocommerce demo products import, woocommerce demo products csv, woocommerce product csv file download, woocommerce demo csv file download, woocommerce dummy data csv file download, woocommerce dummy product csv download, bulk product upload in woocommerce, woocommerce dummy products csv
Share:

WooCommerce Örnek CSV

WooCommerce Toplu Ürün Ekleme

WooCommerce yüklendikten hemen sonra mağazanız boş görünebilir. Ürün, sipariş, inceleme yoktur. Bu kasıtlıdır, böylece kendi ürünlerinizi oluşturmaya ve WooCommerce ürününü tam olarak istediğiniz gibi ayarlamaya başlayabilirsiniz.
Fakat ürünlerle dolu bir mağazanın neye benzediğini görmek isterseniz, ürün listesi içeren bir xml veya csv dosyası kullanarak toplu ürün yükleme yapabilirsiniz.

WooCommerce Ürünleri İçe Aktarma

Dosyayı bilgisayarınıza indirin:
Örnek CSV dosyası indir
Daha sonra yükleme zamanı!
WordPress Panosundan:
1) Menüde: Araçlar > İçe aktar'ı seçin.
2) WooCommerce ürünleri (CSV) altındaki İçe aktarıcıyı çalıştır'ı tıklayın.
3) Dosya seç öğesini seçin ve ardından indirdiğiniz woocommerce-ornek-urun-turkce.csv dosyasını seçin.
4) Bir Sütun Eşleme ekranı belirir. Devam edip işlemi bitirin.

Share:
Subscribe to: Posts (Atom)