Support » Plugin: Plugins Load Order » Confusing options – load sequence

  • Resolved phonyroyal

    (@phonyroyal)


    Which plugin do the three lines below refer to?

    “Would you like this plugin to be loaded always first?” refer to?
    Yes, I want this plugin to be loaded always first
    No, I want to set its priority

    I would like “iQ Block Country” to run its network traffic filtering before “Wordfence Security”. Do the items at the bottom of the stack run first or those at the top? It would be handy if the UI had labels that said “Run First” and “Run Last” next to the list of plugins, so that there is no misunderstanding about the sequence in which plugins will be loaded.

    The plugins are listed in alphabetical order, from A at the top to Z at the bottom. Must “iQ Block Country” be dragged below “Wordfence Security”?

    Thanks

Viewing 5 replies - 1 through 5 (of 5 total)
  • Hi,

    You need to drag & drop the plugins in the correct order. I use it also on my security plugins 🙂

    The problem is that the load order is not kept after a while, as the plugins come back in alphabetical order. Don’t know if it is only a graphical glitch or a real bug. A ticket is open at support but no reply yet.

    The option of “this plugin to load first” is probably to load this plugin before all other plugins. But this is not clear what happens if you don’t do it. I kept the default setting.

    Didier.

    Thread Starter phonyroyal

    (@phonyroyal)

    Am I correct in assuming that the plugin at the bottom of the list runs/loads first and then progressively up the stack?

    I have iQ Block Country at the bottom and Wordfence second from the bottom.

    But Wordfence is still showing logs that it is blocking traffic from countries that should have been blocked by iQ Country Block, and which should therefore never have made it to Wordfence.

    Plugin Author Jose Barrera Mayoral

    (@chespir)

    Hi @phonyroyal

    The three lines you mentioned refers to Plugins Load Order (PLO) itself.

    WordPress default order is alphabetical, so when you activated PLO, you saw plugin stack ordered alphabetically.

    PLO modifies an option stored at WordPress database. When you are at PLO options page, you see plugin stack order, in other words you are seeing the array stored at database graphically. When you save PLO options, WordPress option is modified.

    If a plugin or WordPress itself modifies WordPress option at database, this order will be the new one as PLO does not store a secondary plugin stack.

    If you want “iQ Block Country” to be loaded before “Wordfence Security”, put “iQ Block Country” above “Wordfence Security”. Take into account that the stack of apply_filters or do_action will not be modified.

    Tell me if you have any doubt.

    Thread Starter phonyroyal

    (@phonyroyal)

    Thanks for the detailed post. I understand that you are saying that the load order is from the top downwards, not from the bottom upwards. That is completely opposite to what I have understood to date.

    Would it make sense to arrange plugins in the following order so that the security plugins run first?:
    – iQ Country Block
    – Wordfence Security
    – Cloudflare
    – Elementor
    – Elementor Pro
    – Duplicator
    – Display PHP Version
    – Really Simple SSL (placed last since it is only run once at setup)

    Thanks

    Plugin Author Jose Barrera Mayoral

    (@chespir)

    Hi @phonyroyal

    It is difficult to answer your question because it depends in how each plugin works in its core.

    Based on your example, iQ Country Block will be the first plugin loading its functionality, but WordPress is based on events too, and each plugin registers some functionality on those events with some priority. This priority is the one which I mentioned on last post.

    So WordPress loads all plugins (this order can be modified by PLO). After that WordPress fires events. WordPress checks plugin’s functionality attached to current event and loads it in order (PLO do NOT modify this order unless two plugins register some functionality on the same event with the same priority. In this case the functionality of the first plugin registering, is the first executed).

    Briefly, is a good practice to use PLO, but it also depends on the other plugins.

    PLO is needed if a plugin uses another plugin’s function. If you load a custom plugin called plugin-foo after IQ Country Block, but plugin-foo need some functionality of IQ Country Block, your site may crashed.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Confusing options – load sequence’ is closed to new replies.