[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIcRBDgpf67H8VF20Y8xG4KVUrvhB7JO3qbS_SJV7rSg":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"waughjai","https:\u002F\u002Fprofiles.wordpress.org\u002Fwaughjai\u002F",4,10,89,30,86,"2026-04-04T15:59:38.940Z",[13,36,51,62],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":20,"num_ratings":20,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":31,"download_link":32,"security_score":33,"vuln_count":20,"unpatched_count":20,"last_vuln_date":34,"fetched_at":35},"waj-copyright-year","WAJ Copyright Year","1.0.4","\u003Cp>Adds copyright year or interval o’ years where desired. By default, it just shows the current year, as specified by the server ( which is hopefully keeping accurate track o’ time ). Optionally, you can include a start year. If the start year is different from the current year, then it will show an interval ‘tween the start year & current year.\u003C\u002Fp>\n\u003Cp>For instance, if you set the start year to 2015, in 2018 you will get the following:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>2015 - 2018\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also set a custom divider if you want the interval sign to look different. For instance, if you don’t want the hyphen to have spaces round it, you could set the divider to “-“, & you will get the following:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>2015-2018\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Example\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>\u003C?php\n\ndeclare( strict_types = 1 );\nnamespace MyTheme\\FooterTemplate\n{\n    use \\WaughJ\\CopyrightYear\\CopyrightYear;\n\n    ?>\n        \u003Cfooter class=\"footer\">\n            \u003Cp>Copyright Jaimeson Waugh &copy; \u003C?= new CopyrightYear( 2015, '-' ); ?>.\u003C\u002Fp>\n        \u003C\u002Ffooter>\n    \u003C?php\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>or\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[copyright-year start=\"2015\" divider=\"-\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This will print the message, \u003Ccode>Copyright Jaimeson Waugh © 2015-2018.\u003C\u002Fcode>\u003C\u002Fp>\n","Simple class for handling auto-updating copyright year in website footers.",1323,0,"2019-05-07T23:01:00.000Z","5.2.24","4.9.8","7.0",[26,27,28,29,30],"auto-update","copyright","footer","new-year","year","https:\u002F\u002Fgithub.com\u002Fwaughjai\u002Fcopyright-year","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwaj-copyright-year.1.0.4.zip",85,null,"2026-03-15T15:16:48.613Z",{"slug":37,"name":38,"version":39,"author":4,"author_profile":5,"description":40,"short_description":41,"active_installs":20,"downloaded":42,"rating":20,"num_ratings":20,"last_updated":43,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":44,"homepage":49,"download_link":50,"security_score":33,"vuln_count":20,"unpatched_count":20,"last_vuln_date":34,"fetched_at":35},"waj-admin-menu","WAJ Admin Menu","1.2.1","\u003Cp>Creates menu in WordPress’s Appearances -> Menus & generates list HTML from it.\u003C\u002Fp>\n\u003Cp>Allows custom-set classes & IDs for elements for easier styling & has easy way to automatically add “Skip to Content” link for screen-reader users.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Since admin menus need to be created before initialization to work in the WordPress admin & used later in template files to print, admin menu objects are handled through static methods in the WPAdminMenuManager singleton class.\u003C\u002Fp>\n\u003Cp>1st, before admin loads, call the “createAdminMenu” method on WPAdminMenuManager with a slug & title as the 1st 2 mandatory, & a hash map o’ other attributes as an optional 3rd argument. This will make the menu appear under the given name in Appearances -> Menus in the WordPress admin.\u003C\u002Fp>\n\u003Cp>Then you can print the menu through PHP in template files or shortcodes in WordPress content editors.\u003C\u002Fp>\n\u003Cp>= PHP\u003C\u002Fp>\n\u003Cp>To use through PHP, just call the “printAdminMenu” method on the WPAdminMenuManager class with the mandatory argument o’ the slug representing the admin you want to print ( given when creating the menu earlier ) & an optional hash map o’ attributes to o’erride the ones given when creating the menu, if you want to print the same menu in different places with different element classes, for instance.\u003C\u002Fp>\n\u003Cp>= Shortcodes\u003C\u002Fp>\n\u003Cp>To print through shortcodes, just use the shortcode [admin-menu slug=”%slug%”], with optional extra attributes to o’erride the attributes given when creating the menu.\u003C\u002Fp>\n\u003Cp>WPAdminMenuManager also has 2 templates for easier creation o’ admin menus, a header & footer template. Just call WPAdminMenuManager::createHeaderMenu() or WPAdminMenuManager::createFooterMenu() respectively to create them & either call WPAdminMenuManager::printHeaderMenu() or WPAdminMenuManager::printFooterMenu() or use the shortcodes [header-nav] or [footer-nav].\u003C\u002Fp>\n\u003Cp>If you try to print a menu that hasn’t been created yet, it will print nothing.\u003C\u002Fp>\n\u003Cp>Valid attributes for admin menus ( all are optional ):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“nav”: represents the nav element that holds everything. Should hold a hash map with either a class or id attribute, or both.\u003C\u002Fli>\n\u003Cli>“ul”: represents ul element. Should hold the same as “nav”.\u003C\u002Fli>\n\u003Cli>“li”: represents li element. Should hold a hash map with a class attribute.\u003C\u002Fli>\n\u003Cli>“a”: represents a element. Should hold the same as “li”.\u003C\u002Fli>\n\u003Cli>“subnav”: represents child ul elements for multilevel menus. Should hold the same as “li”.\u003C\u002Fli>\n\u003Cli>“subitem”: represents child li elements for multilevel menus. Should hold the same as “li”.\u003C\u002Fli>\n\u003Cli>“sublink”: represents child a elements for multilevel menus. Should hold the same as “li”.\u003C\u002Fli>\n\u003Cli>“parent-link”: represents a elements in top-level li elements that hold child navs. Should hold the same as “li”.\u003C\u002Fli>\n\u003Cli>“skip-to-content”: automatically adds “skip to content” link. Should be a string that will be the anchor ( without the # ) that the “skip to content” link should go to. If not added, “skip to content” link will not be added.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Shortcode attributes that act as these:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>nav-class\u003C\u002Fli>\n\u003Cli>nav-id\u003C\u002Fli>\n\u003Cli>ul-class\u003C\u002Fli>\n\u003Cli>ul-id\u003C\u002Fli>\n\u003Cli>li-class\u003C\u002Fli>\n\u003Cli>a-class\u003C\u002Fli>\n\u003Cli>subnav-class\u003C\u002Fli>\n\u003Cli>subitem-class\u003C\u002Fli>\n\u003Cli>sublink-class\u003C\u002Fli>\n\u003Cli>parent-link-class\u003C\u002Fli>\n\u003Cli>skip-to-content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Example\u003C\u002Fh3>\n\u003Cp>\u002F\u002F functions.php\u003C\u002Fp>\n\u003Cpre>\u003Ccode>declare( strict_types = 1 );\nnamespace MyTheme\n{\n    use WaughJ\\WPAdminMenuManager\\WPAdminMenumanager;\n\n    \u002F\u002F Make sure this is initialized early,\n    \u002F\u002F so WordPress Admin knows that this menu is set up.\n    WPAdminMenuManager::createAdminMenu\n    (\n        'extra-menu',\n        'Extra Menu',\n        [\n            'nav' =>\n            [\n                'class' => 'extra-menu-nav',\n                'id' => 'extra-menu-nav'\n            ],\n            'ul' =>\n            [\n                'class' => 'extra-menu-list',\n                'id' => 'extra-menu-list'\n            ],\n            'li' =>\n            [\n                'class' => 'extra-menu-item'\n            ],\n            'a' =>\n            [\n                'class' => 'extra-menu-link'\n            ],\n            'subnav' =>\n            [\n                'class' => 'extra-menu-subnav'\n            ],\n            'subitem' =>\n            [\n                'class' => 'extra-menu-subitem'\n            ],\n            'sublink' =>\n            [\n                'class' => 'extra-menu-sublink'\n            ],\n            'parent-link' =>\n            [\n                'class' => 'extra-menu-parent-link'\n            ],\n            'skip-to-content' => 'top'\n        ]\n    );\n}\n\n\n\u002F\u002F inc\u002Fheader.php\n\n\u003C?php\n\ndeclare( strict_types = 1 );\nnamespace MyTheme\n{\n    use WaughJ\\WPAdminMenuManager\\WPAdminMenumanager;\n\n    ?>\n        \u003Cheader class=\"header\">\n            \u003C?php WPAdminMenuManager::printAdminMenu( 'extra-menu' ); ?>\n        \u003C\u002Fheader>\n    \u003C?php\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Simple class & shortcodes for easily generating HTML for admin menus set up in WordPress.",1237,"2019-05-07T22:55:00.000Z",[45,46,47,48],"admin-menu","autogenerate","html","nav","https:\u002F\u002Fgithub.com\u002Fwaughjai\u002Fwaj-admin-menu","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwaj-admin-menu.1.2.1.zip",{"slug":52,"name":53,"version":54,"author":4,"author_profile":5,"description":55,"short_description":56,"active_installs":20,"downloaded":42,"rating":20,"num_ratings":20,"last_updated":57,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":58,"homepage":31,"download_link":61,"security_score":33,"vuln_count":20,"unpatched_count":20,"last_vuln_date":34,"fetched_at":35},"waj-links","WAJ Links","1.3.0","\u003Cp>This plugin includes 6 types o’ shortcodes \u002F PHP classes:\u003C\u002Fp>\n\u003Ch3>Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [link href=”url”]content[\u002Flink]\u003Cbr \u002F>\nPHP Class: new WaughJ\\HTMLLink\\HTMLLink( $href, $content, $other_attributes );\u003C\u002Fp>\n\u003Cp>General link where the link href given is used directly as the href. The backbone o’ all the other link types.\u003C\u002Fp>\n\u003Cp>Content, when put ‘tween opening & closing tags, can be a shortcode o’ its own, which will be interpreted, too. When used as a PHP class, you can push any object that can be used as a string as content, including other HTML generators.\u003C\u002Fp>\n\u003Cp>Valid attributes include all valid HTML5 attributes for the a tag, as well as…\u003Cbr \u002F>\n* an “anchor” attribute that adds an anchor to the href ( the part after the # ).\u003Cbr \u002F>\n* a “parameters” attribute that adds GET parameters to the href ( i.e. ?first_parameter=second_value&second_parameter=second_value )\u003Cbr \u002F>\n* an “external” attribute, which, when set to “true”, automatically adds HTML to make the link open in a new tab & protect it from hacking. ( See https:\u002F\u002Fwww.jitbit.com\u002Falexblog\u002F256-targetblank—the-most-underestimated-vulnerability-ever\u002F for mo’ info on security concerns ).\u003C\u002Fp>\n\u003Ch3>Mail-Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [mail-link]email[\u002Fmail-link] or [mail-link email=”email”]Email Me.[\u002Fmail-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\HTMLMailLink\\HTMLMailLink( $email, $other_attributes );\u003C\u002Fp>\n\u003Cp>Generates mailto link. If just email given, content automatically set to email.\u003C\u002Fp>\n\u003Cp>Valid attributes include “value” for content ( for the direct PHP use ). all valid HTML5 attributes for the a tag, as well as the external attribute mentioned under Link.\u003C\u002Fp>\n\u003Ch3>Phone-Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [phone-link]phone number[\u002Fphone-link] or [phone-link tel=”phone”]Call us now![\u002Fphone-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\HTMLPhoneLink\\HTMLPhoneLink( $phone_number, $other_attributes );\u003C\u002Fp>\n\u003Cp>Generates tel link. If just phone # is given, content automatically set to phone #.\u003C\u002Fp>\n\u003Cp>Valid attributes include “value” for content ( for the direct PHP use ). all valid HTML5 attributes for the a tag, as well as the external attribute mentioned under Link.\u003C\u002Fp>\n\u003Ch3>Post-Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [post-link slug=”post-slug”] or [post-link slug=”post-slug” post_type=”specific-post-type”] [post-link post_id=”post-id”]Read this post[\u002Fpost-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\WPPostLink\\WPPostLink( $attributes );\u003C\u002Fp>\n\u003Cp>Generates a link to a post, based on slug or post_id, or, if using the PHP class, the post object itself under “post”.\u003C\u002Fp>\n\u003Cp>In addition, you can add all the attributes you can for the regular Link class & shortcode.\u003C\u002Fp>\n\u003Ch3>Home-Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [home-link] or [home-link]Visit our home page.[\u002Fhome-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\WPHomeLink\\WPHomeLink( $attributes );\u003C\u002Fp>\n\u003Cp>Automatically generates link to WordPress front page. Content that represents link defaults to name o’ front page. All alternative attributes done the same as regular Link class & shortcode.\u003C\u002Fp>\n\u003Ch3>Category Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [category-link slug=”category-slug”] or [category-link category_id=”category-id”]Link content[\u002Fcategory-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\WPCategoryLink\\WPCategoryLink( $attributes );\u003C\u002Fp>\n\u003Cp>Automatically generates link to category page. Use slug or category_id attributes to get category. Content & optional attributes added the same way as regular Link class.\u003C\u002Fp>\n\u003Ch3>Tag Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [tag-link slug=”category-slug”] or [tag-link slug=”category-slug”]Link content[\u002Ftag-link]\u003Cbr \u002F>\nPHP Class: new WaughJ\\WPTagLink\\WPTagLink( $attributes );\u003C\u002Fp>\n\u003Cp>Automatically generates link to tag page. Use slug to get tag. Content & optional attributes added the same way as regular Link class.\u003C\u002Fp>\n\u003Ch3>Media Link\u003C\u002Fh3>\n\u003Cp>Shortcode: [media-link media_id=””]Link content[\u002Fmedia-link] or [media-link media-id=””]Link content[\u002Fmedia-link] or [media-link media-id=”” value=”Link content”]\u003Cbr \u002F>\nPHP Class: new WaughJ\\WPMediaLink\\WPMediaLink( $id, $content, $attributes );\u003C\u002Fp>\n\u003Cp>Automatically generates link to media item. Content must be set or shortcode won’t work. Shortcode content can be put as content, too. For example, if WAJ Images is installed, you can do the common technique o’ an image link with:\u003C\u002Fp>\n\u003Cp>[media-link media-id=”1″][upload-image id=”1″][\u002Fmedia-link]\u003C\u002Fp>\n","Way to mo'-easily create links o' various types in content through PHP & shortcodes.","2019-05-08T22:46:00.000Z",[59,47,60],"auto-generate","link","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwaj-links.1.3.0.zip",{"slug":63,"name":64,"version":65,"author":4,"author_profile":5,"description":66,"short_description":67,"active_installs":20,"downloaded":68,"rating":20,"num_ratings":20,"last_updated":69,"tested_up_to":22,"requires_at_least":70,"requires_php":24,"tags":71,"homepage":73,"download_link":74,"security_score":75,"vuln_count":20,"unpatched_count":20,"last_vuln_date":34,"fetched_at":76},"waj-scripts","WAJ Scripts","1.1.1","\u003Cp>WordPress plugin for easily adding CSS stylesheets & JavaScript files.\u003C\u002Fp>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>use WaughJ\\WPScripts\\WPStylesheets;\nWPStylesheets::register( 'main' );\n\nuse WaughJ\\WPScripts\\WPScripts;\nWPScripts::register( 'blog', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","WordPress plugin for easily adding CSS stylesheets & JavaScript files.",1140,"","5.0.0",[72],"scripts","https:\u002F\u002Fgithub.com\u002Fwaughjai\u002Fwaj-scripts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwaj-scripts.1.1.1.zip",100,"2026-03-15T10:48:56.248Z"]