[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fKkcgs6f5IrvliPtOHIPXa9gYFd0d5Ptiu6tNhGTDPpU":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"mboynes","Matthew Boynes","https:\u002F\u002Fprofiles.wordpress.org\u002Fmboynes\u002F",6,8130,85,30,84,"2026-04-03T21:29:36.171Z",[14,39,60,79,96,115],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":20,"downloaded":21,"rating":22,"num_ratings":23,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":28,"homepage":34,"download_link":35,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"options-importer","WP Options Importer","7","\u003Cp>WordPress can presently export all of its content via WXR, and then import that\u003Cbr \u002F>\nthrough the WordPress Importer plugin. That process includes all posts, terms,\u003Cbr \u002F>\nmenus, comments, and users, but it doesn’t touch options. In addition to\u003Cbr \u002F>\ngeneral settings, options can include widget configurations, plugin settings,\u003Cbr \u002F>\ntheme settings, and lots more. This can be very time-consuming to migrate\u003Cbr \u002F>\nmanually. WP Options Importer aims to fill that void and save us all a lot of\u003Cbr \u002F>\ntime.\u003C\u002Fp>\n\u003Cp>WP Options Importer allows you to export all options to a JSON file, and then\u003Cbr \u002F>\nyou can selectively import them into another WordPress installation. The import\u003Cbr \u002F>\nprocess is very transparent, and it even shows you what data you’ll be\u003Cbr \u002F>\nimporting. Lastly, it gives you the option to override existing settings or to\u003Cbr \u002F>\nskip options that already exist.\u003C\u002Fp>\n","Export and import WordPress Options.",7000,102493,98,9,"2023-03-03T14:46:00.000Z","6.1.10","3.8","",[29,30,31,32,33],"export","exporter","import","importer","options","https:\u002F\u002Fgithub.com\u002Falleyinteractive\u002Foptions-importer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foptions-importer.7.zip",0,null,"2026-03-15T15:16:48.613Z",{"slug":40,"name":41,"version":42,"author":5,"author_profile":6,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":27,"tags":52,"homepage":58,"download_link":59,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"super-cpt","SuperCPT","0.2.1","\u003Ch4>UPGRADE NOTICE\u003C\u002Fh4>\n\u003Cp>SuperCPT now uses Font Awesome instead of Glyphicons. Some icon names will carry over, but not all. If this is a considerable inconvenience for you for a project, simply do not update it. It’s not a security release, so updating isn’t necessary.\u003C\u002Fp>\n\u003Ch4>Overview\u003C\u002Fh4>\n\u003Cp>SuperCPT is an object wrapper for Custom Post Types, Custom Taxonomies, and Custom Post Meta “for coders, by coders.” Simply put, SuperCPT:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>DRYs up the Custom Post Type and Custom Taxonomy process (e.g. automatically adds the name to all the labels),\u003C\u002Fli>\n\u003Cli>allows you to set default options for all your Custom Post Types and Taxonomies,\u003C\u002Fli>\n\u003Cli>significantly simplifies the process of creating, saving, and displaying Custom Post Meta,\u003C\u002Fli>\n\u003Cli>is sexy! Your custom fields are styled to look great and SuperCPT comes with 361 awesome icons courtesy of \u003Ca href=\"http:\u002F\u002Ffontawesome.io\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Demo Video\u003C\u002Fh4>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F59368054\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\n\u003Ch4>TextMate\u002FSublime Text 2 Bundle\u003C\u002Fh4>\n\u003Cp>If you use TextMate, Sublime Text 2, or another editor which supports TextMate bundles, check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt-bundle\" rel=\"nofollow ugc\">this set of snippets\u003C\u002Fa> to turbo-charge your development.\u003C\u002Fp>\n\u003Ch4>And more…\u003C\u002Fh4>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsuper-cpt\u002Fother_notes\u002F\" rel=\"ugc\">Other Notes tab\u003C\u002Fa> for instructions and demo code. Find more demos and a full reference \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt\u002Fwiki\" rel=\"nofollow ugc\">at GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Since you’re a hard-core coder, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmboynes\u002Fsuper-cpt\" rel=\"nofollow ugc\">check this out on GitHub\u003C\u002Fa> if you want to contribute!\u003C\u002Fp>\n\u003Ch3>Instructions\u003C\u002Fh3>\n\u003Cp>Depending on when and where you’re declaring your Custom Post Types and Taxonomies, you have different options for which action to hook onto. \u003Ccode>after_setup_theme\u003C\u002Fcode> is the safest bet, but if you’re referencing this in another plugin, \u003Ccode>plugins_loaded\u003C\u002Fcode> is a good choice. To avoid a fatal error if something goes awry, you should check to see if the class \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode> exists before referencing it. Don’t worry about keeping up, reference code is below.\u003C\u002Fp>\n\u003Ch4>Custom Post Types\u003C\u002Fh4>\n\u003Cp>To define a new Custom Post Type, instantiate the \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode> class with a string for the post type. For example,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies = new Super_Custom_Post_Type( 'movie' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>It works very much like \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FFunction_Reference\u002Fregister_post_type\" rel=\"nofollow ugc\">\u003Ccode>register_post_type\u003C\u002Fcode>\u003C\u002Fa>. The first thing you gained by using this is that the labels all got setup with either ‘Movie’ or ‘Movies’. If our post type were ‘indie-film’, the labels would have “Indie Film” and “Indie Films” as appropriate. Of course, you do have the ability to set the plural word in cases such as goose\u002Fgeese. You also gained the ability to define your own custom post type defaults through a filter. Lastly, you gained access to \u003Ccode>Super_Custom_Post_Type\u003C\u002Fcode>‘s parent class, \u003Ccode>Super_Custom_Post_Meta\u003C\u002Fcode>, for fast, clean, intuitive custom post meta, which we’ll go into shortly.\u003C\u002Fp>\n\u003Cp>Lastly, if you’ve built a lot of custom post types, you’re probably sick and tired of the pushpin icon. SuperCPT comes with 350 gorgeous icons courtesy of \u003Ca href=\"http:\u002F\u002Ffontawesome.io\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa> that are extremely easy to implement. Here’s what it looks like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies->set_icon( 'film' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Custom Taxonomies\u003C\u002Fh4>\n\u003Cp>To define a new Custom Taxonomy, much like with Custom Post Types, you instantiate \u003Ccode>Super_Custom_Taxonomy\u003C\u002Fcode> with a string for the term name. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$actors = new Super_Custom_Taxonomy( 'actor' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Again, we got free labels for doing this, using either ‘Actor’ or ‘Actors’ as appropriate, without needing to specify the 16 labels individually.\u003C\u002Fp>\n\u003Ch4>Custom Post Meta\u003C\u002Fh4>\n\u003Cp>Custom Post Meta is where SuperCPT shines the brightest, because this process is typically the most time-consuming. \u003Ccode>Super_Custom_Post_Meta\u003C\u002Fcode> is a free-standing class that can be added to any post type, even built-in post types (posts and pages). This class has a method \u003Ccode>add_meta_box\u003C\u002Fcode> which does the bulk of the work, and somewhat mimics the WordPress function. Here’s an example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$movies->add_meta_box( array(\n    'id' => 'features',\n    'fields' => array(\n        'tagline' => array( 'type' => 'text' )\n    )\n) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The method \u003Ccode>add_meta_box\u003C\u002Fcode> takes an array of parameters (unlike the core function which takes normal ordered arguments). \u003Ccode>id\u003C\u002Fcode> is the only required attribute, and that becomes the ID of the meta box as well as the title (this will get converted into “words” for the title, e.g. \u003Ccode>\"movie_details\"\u003C\u002Fcode> would become “Movie Details”). \u003Ccode>fields\u003C\u002Fcode> is an array of all the fields in the meta box. It’s an associative array, where the keys in the array are the field names and the values are another associative array of attributes for the field. The keys closely reflect the HTML attributes in the resulting field, and any key not known by the plugin will in fact become an HTML attribute (e.g. passing \u003Ccode>'data-src' => 'foo'\u003C\u002Fcode> would become the HTML attribute \u003Ccode>data-src=\"foo\"\u003C\u002Fcode> in the field). See the reference for the full gamut of options, both for the \u003Ccode>add_meta_box\u003C\u002Fcode> argument array and the fields array.\u003C\u002Fp>\n\u003Cp>Long story short, using this class means you don’t have to do any additional work to store data, retrieve data, style the boxes, and so on.\u003C\u002Fp>\n\u003Ch4>Helper Functions\u003C\u002Fh4>\n\u003Cp>SuperCPT has a couple of helper functions for displaying your post meta. \u003Ccode>get_scpt_formatted_meta\u003C\u002Fcode> and \u003Ccode>the_scpt_formatted_meta\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Demo Code\u003C\u002Fh3>\n\u003Cp>Here is the full demo code:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function scpt_demo() {\n    if ( ! class_exists( 'Super_Custom_Post_Type' ) )\n        return;\n\n    $demo_posts = new Super_Custom_Post_Type( 'demo-post' );\n\n    # Test Icon. Should be a square grid.\n    $demo_posts->set_icon( 'th-large' );\n\n    # Taxonomy test, should be like tags\n    $tax_tags = new Super_Custom_Taxonomy( 'tax-tag' );\n\n    # Taxonomy test, should be like categories\n    $tax_cats = new Super_Custom_Taxonomy( 'tax-cat', 'Tax Cat', 'Tax Cats', 'category' );\n\n    # Connect both of the above taxonomies with the post type\n    connect_types_and_taxes( $demo_posts, array( $tax_tags, $tax_cats ) );\n\n    # Add a meta box with every field type\n    $demo_posts->add_meta_box( array(\n        'id' => 'demo-fields',\n        'context' => 'normal',\n        'fields' => array(\n            'textbox-demo' => array(),\n            'textarea-demo' => array( 'type' => 'textarea' ),\n            'wysiwyg-demo' => array( 'type' => 'wysiwyg' ),\n            'boolean-demo' => array( 'type' => 'boolean' ),\n            'checkboxes-demo' => array( 'type' => 'checkbox', 'options' => array( 'one', 'two', 'three' ) ),\n            'radio-buttons-demo' => array( 'type' => 'radio', 'options' => array( 'one', 'two', 'three' ) ),\n            'select-demo' => array( 'type' => 'select', 'options' => array( 1 => 'one', 2 => 'two', 3 => 'three' ) ),\n            'multi-select-demo' => array( 'type' => 'select', 'options' => array( 'one', 'two', 'three' ), 'multiple' => 'multiple' ),\n            'date-demo' => array( 'type' => 'date' ),\n            'label-override-demo' => array( 'label' => 'Label Demo' )\n        )\n    ) );\n\n    # Add another CPT to test one-to-one (it could just as easily be one-to-many or many-to-many)\n    $linked_posts = new Super_Custom_Post_Type( 'linked-post', 'Other Post', 'Other Posts' );\n    $linked_posts->add_meta_box( array(\n        'id' => 'one-to-one',\n        'title' => 'Testing One-to-One relationship',\n        'context' => 'side',\n        'fields' => array(\n            'demo-posts' => array( 'type' => 'select', 'data' => 'demo-post' ),\n            'side-wysiwyg' => array( 'type' => 'wysiwyg' )\n        )\n    ) );\n    $linked_posts->set_icon( 'cogs' );\n\n}\nadd_action( 'after_setup_theme', 'scpt_demo' );\u003Ch3>To-Do\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>1. Add better support for multiple fields for one meta key\u003Cbr \u002F>\n2. Add easy RSS feeds, e.g. in fields array, a parameter might be \u003Ccode>'rss' => 'PubDate'\u003C\u002Fcode> to prefer that field’s data over the post’s publication date.\u003C\u002Fp>\n","Insanely easy and attractive custom post types, custom post meta, and custom taxonomies",700,18930,100,14,"2013-08-10T20:33:00.000Z","3.6.1","3.0",[53,54,55,56,57],"cms","custom-field","custom-fields","custom-post-type","custom-post-types","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsuper-cpt\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsuper-cpt.0.2.1.zip",{"slug":61,"name":62,"version":63,"author":5,"author_profile":6,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":47,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":27,"tags":72,"homepage":77,"download_link":78,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"rewrite-testing","Rewrite Rule Testing","0.1.1","\u003Cp>This plugin provides a simple interface for testing your custom rewrite rules.\u003C\u002Fp>\n\u003Cp>The purpose of this plugin is to be able to test your \u003Cem>own\u003C\u002Fem> rewrite rules, so\u003Cbr \u002F>\nyou’re probably most interested in knowing how to do that, right? The plugin\u003Cbr \u002F>\nprovides a filter, \u003Ccode>rewrite_testing_tests\u003C\u002Fcode> to add your own tests. That filter\u003Cbr \u002F>\npasses an associative array of name => tests. The tests array is an associative\u003Cbr \u002F>\narray of URI => expected match. In the outer array, the “name” is arbitrary and\u003Cbr \u002F>\nfor your own reference. In the inner array, the “URI” is the path you want to\u003Cbr \u002F>\ntest, and the “expected match” is what WordPress should find as a rewrite\u003Cbr \u002F>\nmatch.\u003C\u002Fp>\n\u003Cp>Enough chit-chat, here’s an example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function my_rewrite_tests( $tests ) {\n  return array(\n    'Events' => array(\n      '\u002Fevent\u002Fsuper-bowl\u002F' => 'index.php?event=$matches[1]',\n      '\u002Fevent\u002Fsuper-bowl\u002Fpage\u002F2\u002F' => 'index.php?event=$matches[1]&paged=$matches[2]'\n    )\n  );\n}\nadd_filter( 'rewrite_testing_tests', 'my_rewrite_tests' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can see the \u003Ccode>test_cases()\u003C\u002Fcode> method for a full suite of tests for the “Day\u003Cbr \u002F>\nand Name” permalink structure. It’s not necessary to leave these in (in fact,\u003Cbr \u002F>\nthe above demo would wipe them out), unless you want to make sure that your\u003Cbr \u002F>\ncustom rewrites aren’t affecting core rewrites. If you aren’t using “Day and\u003Cbr \u002F>\nName” permalinks, you’ll need to adjust the tests to fit your permalink\u003Cbr \u002F>\nstructure.\u003C\u002Fp>\n\u003Ch3>Todo\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Add a debug bar extension which reads a transient; the transient would be\u003Cbr \u002F>\nupdated whenever rewrite rules are flushed. The debug bar extension would\u003Cbr \u002F>\nshow pass\u002Ffail status and link directly to the settings page.\u003C\u002Fli>\n\u003Cli>Add tests for other permalink structures?\u003C\u002Fli>\n\u003Cli>Add a way to run this as part of phpunit\u003C\u002Fli>\n\u003C\u002Ful>\n","Unit test your rewrite rules from the WordPress Admin.",300,29489,2,"2014-05-20T16:53:00.000Z","3.9.40","3.9",[73,74,75,76],"permalinks","rewrite-rules","testing","tests","https:\u002F\u002Fgithub.com\u002Falleyinteractive\u002Frewrite-testing","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frewrite-testing.0.1.1.zip",{"slug":80,"name":81,"version":82,"author":5,"author_profile":6,"description":83,"short_description":84,"active_installs":47,"downloaded":85,"rating":86,"num_ratings":87,"last_updated":88,"tested_up_to":70,"requires_at_least":89,"requires_php":27,"tags":90,"homepage":94,"download_link":95,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"post-type-icons","Post Type Icons","0.2.2","\u003Cp>Does the pushpin not describe your custom post type? Here are hundreds more icons to choose from. Icons are the GPL-compatible \u003Ca href=\"http:\u002F\u002Ffontawesome.io\u002F\" rel=\"nofollow ugc\">Font Awesome Icons\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This is the same icon features that comes with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsuper-cpt\u002F\" rel=\"ugc\">SuperCPT\u003C\u002Fa> 0.2+, but pulled out of the plugin for those crazy birds who don’t use it.\u003C\u002Fp>\n\u003Cp>This adds a function you can use, \u003Ccode>pti_set_post_type_icon( $post_type, $icon );\u003C\u002Fcode> to set your post type’s icon. For instance, \u003Ccode>pti_set_post_type_icon( 'event', 'calendar' );\u003C\u002Fcode>. You can also set the global variable $pti_icons as an array of post type => icon names. Using the global variable is safer, since it doesn’t rely on a function (you could of course call \u003Ccode>if ( function_exists( 'pti_set_post_type_icons' ) )\u003C\u002Fcode> to be equally safe using the function).\u003C\u002Fp>\n","Quickly and easily add Font Awesome icons to your custom post types.",5914,92,5,"2014-04-25T05:24:00.000Z","3.6",[56,57,91,92,93],"font-awesome","icons","pizzazz","http:\u002F\u002Fboyn.es\u002Fcategory\u002Fpost-type-icons\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-type-icons.0.2.2.zip",{"slug":97,"name":98,"version":99,"author":5,"author_profile":6,"description":100,"short_description":101,"active_installs":102,"downloaded":103,"rating":47,"num_ratings":104,"last_updated":105,"tested_up_to":70,"requires_at_least":106,"requires_php":27,"tags":107,"homepage":113,"download_link":114,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"debug-bar-remote-requests","Debug Bar Remote Requests","0.1.2","\u003Cp>An add-on for the Debug Bar plugin that will log and profile remote requests made through the HTTP API. This plugin requires the Debug Bar Plugin.\u003C\u002Fp>\n\u003Cp>This plugin will add a “Remote Requests” panel to Debug Bar that will display the:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Request method (GET, POST, etc)\u003C\u002Fli>\n\u003Cli>URL\u003C\u002Fli>\n\u003Cli>Time per request\u003C\u002Fli>\n\u003Cli>Total time for all requests\u003C\u002Fli>\n\u003Cli>Total number of requests\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Optionally, you can add ?dbrr_full=1 to your URL to get additional information, including all request parameters and a full dump of the response with headers.\u003C\u002Fp>\n","An add-on for the Debug Bar plugin that will log and profile remote requests made through the HTTP API",20,25762,1,"2014-04-23T20:31:00.000Z","3.5",[108,109,110,111,112],"api","debug","debug-bar","http-api","remote-requests","http:\u002F\u002Fgithub.com\u002Falleyinteractive.com\u002Fdebug-bar-remote-requests","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdebug-bar-remote-requests.0.1.2.zip",{"slug":116,"name":117,"version":63,"author":5,"author_profile":6,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":47,"num_ratings":104,"last_updated":122,"tested_up_to":70,"requires_at_least":106,"requires_php":27,"tags":123,"homepage":127,"download_link":128,"security_score":9,"vuln_count":36,"unpatched_count":36,"last_vuln_date":37,"fetched_at":38},"debug-bar-roles-and-capabilities","Debug Bar Roles and Capabilities","\u003Cp>This plugin will add a “Roles and Capabilities” panel to Debug Bar that tabulates all the roles and capabilities on the site. This plugin requires the Debug Bar Plugin.\u003C\u002Fp>\n","A simple add-on for Debug Bar that tabulates all roles and capabilities",10,4085,"2014-05-20T16:19:00.000Z",[124,109,110,125,126],"capabilities","roles","users","http:\u002F\u002Fgithub.com\u002Falleyinteractive\u002Fdebug-bar-roles-and-capabilities","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdebug-bar-roles-and-capabilities.0.1.1.zip"]