{"id":671,"date":"2023-10-22T12:33:37","date_gmt":"2023-10-22T12:33:37","guid":{"rendered":"https:\/\/wpshortcode.org\/?p=671"},"modified":"2023-10-22T12:35:43","modified_gmt":"2023-10-22T12:35:43","slug":"essential-content-types","status":"publish","type":"post","link":"https:\/\/wpshortcode.org\/essential-content-types\/","title":{"rendered":"Essential Content Types Shortcodes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Below, you&#8217;ll find a detailed guide on how to add the <strong>Essential Content Types Shortcodes<\/strong> to your WordPress website, including their <strong>parameters<\/strong>, <strong>examples<\/strong>, and <strong>PHP function code<\/strong>. Additionally, we&#8217;ll assist you with common issues that might cause the Essential Content Types Plugin shortcodes not to show or not to work correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting, here is an overview of the Essential Content Types Plugin and the shortcodes it provides:<\/p>\n\n\n<p>    <div class=\"plugin-info-box\">\n        <div class=\"top-main\">\n            <!-- SVG Image -->\n            <div class=\"plugin-image\">\n                <img decoding=\"async\" src=\"https:\/\/ps.w.org\/essential-content-types\/assets\/icon.svg?rev=1641004\" alt=\"Plugin Icon\" \/>\n            <\/div>\n            \n            <div class=\"plugin-descriptive-part\">\n                <!-- Plugin Name with Link -->\n\n                    <a class=\"plugin-title\" href=\"https:\/\/wordpress.org\/plugins\/essential-content-types\" target=\"_blank\" rel=\"noopener\">\n                        Essential Content Types                    <\/a>\n\n\n                <!-- Plugin Description -->\n                <p class=\"plugin-description\">\n                    &quot;Essential Content Types is a versatile WordPress plugin that enables you to effortlessly manage and display different types of content like testimonials, services, and portfolio, improving your website&#039;s functionality.&quot;                <\/p>\n            <\/div>\n        <\/div>\n\n        <!-- Rating and Additional Info -->\n        <div class=\"plugin-meta\">\n            <span class=\"plugin-rating\">\n                <span class='stars'>\u2605\u2605\u2605\u2729\u2729<\/span> (2)\n            <\/span>\n            <span class=\"plugin-active-installs\">\n                <strong>Active Installs<\/strong>: 40000+\n            <\/span>\n            <span class=\"plugin-tested\">\n                <strong>Tested with<\/strong>: 6.2.3            <\/span>\n            <span class=\"plugin-php-version\">\n                <strong>PHP Version<\/strong>: false            <\/span>\n        <\/div>\n\n        <!-- List of Included Shortcodes -->\n        <div class=\"plugin-shortcodes\">\n            <strong>Included Shortcodes:<\/strong>\n            <ul>\n                <li>[featured_content]<\/li><li>[food_menu]<\/li><li>[portfolio]<\/li><li>[services]<\/li><li>[jetpack_testimonials]<\/li>            <\/ul>\n        <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Essential Content Types [featured_content] Shortcode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Essential Content Types plugin&#8217;s &#8216;featured_content&#8217; shortcode is a powerful tool for displaying featured content on your WordPress site. \n\n\n\nThis shortcode allows you to control various aspects of the featured content display, including whether to show images, content types, tags, authors, and more. It also provides options for filtering content by type or tag, determining the number of columns, and setting the order of posts. \n\nThe shortcode ensures the validity of inputs and sanitizes them for secure usage. It enqueues the necessary styles when used, delivering a seamless viewing experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode<\/strong>: <code>[featured_content]<\/code><\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a list of all possible featured_content shortcode parameters and attributes:<\/p>\n\n\n<ul>\n<li><code>image<\/code> &#8211; Determines if the image should be displayed or not<\/li>\n<li><code>display_types<\/code> &#8211; Decides if the content types should be shown<\/li>\n<li><code>display_tags<\/code> &#8211; Controls if the tags should be displayed<\/li>\n<li><code>display_content<\/code> &#8211; Decides if the content should be shown<\/li>\n<li><code>display_author<\/code> &#8211; Controls whether the author&#8217;s name is displayed<\/li>\n<li><code>show_filter<\/code> &#8211; Indicates if a filter should be shown<\/li>\n<li><code>include_type<\/code> &#8211; Specifies the types of content to include<\/li>\n<li><code>include_tag<\/code> &#8211; Specifies the tags to include<\/li>\n<li><code>columns<\/code> &#8211; Sets the number of columns for the content<\/li>\n<li><code>showposts<\/code> &#8211; Determines the number of posts to show<\/li>\n<li><code>order<\/code> &#8211; Sets the order of the content, either ascending or descending<\/li>\n<li><code>orderby<\/code> &#8211; Specifies how the content should be ordered<\/li>\n<\/ul>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Examples and Usage<\/h3>\n\n\n<p><strong>Basic example<\/strong> &#8211; Displaying featured content with default attributes<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[featured_content \/]<\/code><\/pre>\n\n\n<p>In this basic example, the shortcode [featured_content \/] is used to display the featured content. Since no attributes are specified, the default attributes specified in the PHP function &#8216;featured_content_shortcode&#8217; will be used. This includes displaying the image, types, tags, and content of the featured content, but not the author. The content will be displayed in 2 columns and the order of the content will be ascending by date.<\/p>\n<p><strong>Advanced example<\/strong> &#8211; Displaying featured content with custom attributes<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[featured_content image=\"false\" display_author=\"true\" columns=\"3\" showposts=\"5\" order=\"desc\" orderby=\"title\" \/]<\/code><\/pre>\n\n\n<p>In this advanced example, the shortcode [featured_content \/] is used with custom attributes. The &#8216;image&#8217; attribute is set to &#8220;false&#8221;, which means the image of the featured content will not be displayed. The &#8216;display_author&#8217; attribute is set to &#8220;true&#8221;, which means the author of the content will be displayed. The &#8216;columns&#8217; attribute is set to &#8220;3&#8221;, which means the content will be displayed in 3 columns. The &#8216;showposts&#8217; attribute is set to &#8220;5&#8221;, which means only the first 5 posts will be displayed. The &#8216;order&#8217; attribute is set to &#8220;desc&#8221;, which means the posts will be displayed in descending order. The &#8216;orderby&#8217; attribute is set to &#8220;title&#8221;, which means the posts will be ordered by their title.<\/p>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Function Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In case you have difficulties debugging what causing issues with <code>[featured_content]<\/code> shortcode, check below the related PHP functions code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode line<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_shortcode( 'featured_content', array( $this, 'featured_content_shortcode' ) );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode PHP function<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; light: false; title: ; toolbar: true; notranslate\" title=\"\">\nfunction featured_content_shortcode( $atts ) {\n\t\t\/\/ Default attributes\n\t\t$atts = shortcode_atts(\n\t\t\tarray(\n\t\t\t\t&#039;image&#039;           =&gt; true,\n\t\t\t\t&#039;display_types&#039;   =&gt; true,\n\t\t\t\t&#039;display_tags&#039;    =&gt; true,\n\t\t\t\t&#039;display_content&#039; =&gt; true,\n\t\t\t\t&#039;display_author&#039;  =&gt; false,\n\t\t\t\t&#039;show_filter&#039;     =&gt; false,\n\t\t\t\t&#039;include_type&#039;    =&gt; false,\n\t\t\t\t&#039;include_tag&#039;     =&gt; false,\n\t\t\t\t&#039;columns&#039;         =&gt; 2,\n\t\t\t\t&#039;showposts&#039;       =&gt; -1,\n\t\t\t\t&#039;order&#039;           =&gt; &#039;asc&#039;,\n\t\t\t\t&#039;orderby&#039;         =&gt; &#039;date&#039;,\n\t\t\t),\n\t\t\t$atts,\n\t\t\t&#039;featured_content&#039;\n\t\t);\n\n\t\t\/\/ A little sanitization\n\t\tif ( $atts&#91;&#039;image&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;image&#039;] ) {\n\t\t\t$atts&#91;&#039;image&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;display_types&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_types&#039;] ) {\n\t\t\t$atts&#91;&#039;display_types&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;display_tags&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_tags&#039;] ) {\n\t\t\t$atts&#91;&#039;display_tags&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;display_author&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_author&#039;] ) {\n\t\t\t$atts&#91;&#039;display_author&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;full&#039; != $atts&#91;&#039;display_content&#039;] ) {\n\t\t\t$atts&#91;&#039;display_content&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;include_type&#039;] ) {\n\t\t\t$atts&#91;&#039;include_type&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_type&#039;] ) );\n\t\t}\n\n\t\tif ( $atts&#91;&#039;include_tag&#039;] ) {\n\t\t\t$atts&#91;&#039;include_tag&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_tag&#039;] ) );\n\t\t}\n\n\t\t\/\/ Check if column value is set to valid numbers or else set default value as 2\n\t\tif ( 1 &lt;= $atts&#91;&#039;columns&#039;] &amp;&amp; 6 &gt;= $atts&#91;&#039;columns&#039;] ) {\n\t\t\t$atts&#91;&#039;columns&#039;] = absint( $atts&#91;&#039;columns&#039;] );\n\t\t} else {\n\t\t\t$atts&#91;&#039;columns&#039;] = 2;\n\t\t}\n\n\t\t$atts&#91;&#039;showposts&#039;] = intval( $atts&#91;&#039;showposts&#039;] );\n\n\t\tif ( $atts&#91;&#039;order&#039;] ) {\n\t\t\t$atts&#91;&#039;order&#039;] = urldecode( $atts&#91;&#039;order&#039;] );\n\t\t\t$atts&#91;&#039;order&#039;] = strtoupper( $atts&#91;&#039;order&#039;] );\n\t\t\tif ( &#039;DESC&#039; != $atts&#91;&#039;order&#039;] ) {\n\t\t\t\t$atts&#91;&#039;order&#039;] = &#039;ASC&#039;;\n\t\t\t}\n\t\t}\n\n\t\tif ( $atts&#91;&#039;orderby&#039;] ) {\n\t\t\t$atts&#91;&#039;orderby&#039;] = urldecode( $atts&#91;&#039;orderby&#039;] );\n\t\t\t$atts&#91;&#039;orderby&#039;] = strtolower( $atts&#91;&#039;orderby&#039;] );\n\t\t\t$allowed_keys    = array( &#039;author&#039;, &#039;date&#039;, &#039;title&#039;, &#039;rand&#039; );\n\n\t\t\t$parsed = array();\n\t\t\tforeach ( explode( &#039;,&#039;, $atts&#91;&#039;orderby&#039;] ) as $featured_content_index_number =&gt; $orderby ) {\n\t\t\t\tif ( ! in_array( $orderby, $allowed_keys ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t$parsed&#91;] = $orderby;\n\t\t\t}\n\n\t\t\tif ( empty( $parsed ) ) {\n\t\t\t\tunset( $atts&#91;&#039;orderby&#039;] );\n\t\t\t} else {\n\t\t\t\t$atts&#91;&#039;orderby&#039;] = implode( &#039; &#039;, $parsed );\n\t\t\t}\n\t\t}\n\n\t\t\/\/ enqueue shortcode styles when shortcode is used\n\t\twp_enqueue_style( &#039;featured-content-style&#039;, plugins_url( &#039;css\/featured-content-shortcode.css&#039;, __FILE__ ), array(), &#039;20140326&#039; );\n\n\t\treturn self::featured_content_shortcode_html( $atts );\n\t}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Code file location<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">essential-content-types\/essential-content-types\/admin\/class-featured-content.php<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Essential Content Types [food_menu] Shortcode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8216;food_menu&#8217; shortcode from the essential-content-types plugin is designed to display a food menu on your WordPress site. \n\n\n\nThis shortcode accepts three attributes: &#8216;include_type&#8217;, &#8216;include_tag&#8217;, and &#8216;showposts&#8217;. The &#8216;include_type&#8217; and &#8216;include_tag&#8217; attributes filter the food items to display based on type and tag. The &#8216;showposts&#8217; attribute limits the number of food items to display. \n\nThe shortcode also enqueues the necessary CSS and JS files for proper styling and functionality. The resulting output is generated by the &#8216;ect_food_shortcode_html&#8217; function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode<\/strong>: <code>[food_menu]<\/code><\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a list of all possible food_menu shortcode parameters and attributes:<\/p>\n\n\n<ul>\n<li><code>include_type<\/code> &#8211; Defines the types of food to include in the menu.<\/li>\n<li><code>include_tag<\/code> &#8211; Specifies the tags related to food items to be included.<\/li>\n<li><code>showposts<\/code> &#8211; Determines the number of food items to display.<\/li>\n<\/ul>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Examples and Usage<\/h3>\n\n\n<p><strong>Basic Example<\/strong> &#8211; Displaying the entire food menu without any specific type or tag restrictions.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[food_menu \/]<\/code><\/pre>\n\n\n<p><strong>Advanced Examples<\/strong><\/p>\n<p>Displaying the food menu with a specific type. In this case, the type is &#8216;vegan&#8217;. It will only show food items categorized as &#8216;vegan&#8217;.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[food_menu include_type='vegan' \/]<\/code><\/pre>\n\n\n<p>Displaying the food menu with a specific tag. Here, the tag is &#8216;gluten-free&#8217;. It will only show food items tagged as &#8216;gluten-free&#8217;.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[food_menu include_tag='gluten-free' \/]<\/code><\/pre>\n\n\n<p>Limiting the number of food items shown in the food menu. This example will show only the first 5 food items.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[food_menu showposts=5 \/]<\/code><\/pre>\n\n\n<p>Combining multiple attributes for more specific food menu displays. This example will show the first 3 &#8216;vegan&#8217; food items that are also tagged as &#8216;gluten-free&#8217;.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[food_menu include_type='vegan' include_tag='gluten-free' showposts=3 \/]<\/code><\/pre>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Function Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In case you have difficulties debugging what causing issues with <code>[food_menu]<\/code> shortcode, check below the related PHP functions code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode line<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_shortcode( 'food_menu', array( $this, 'ect_food_shortcode' ) );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode PHP function<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; light: false; title: ; toolbar: true; notranslate\" title=\"\">\nfunction ect_food_shortcode( $atts ) {\n        \/\/ Default attributes\n        $atts = shortcode_atts( array(\n            &#039;include_type&#039;    =&gt; false,\n            &#039;include_tag&#039;     =&gt; false,\n            &#039;showposts&#039;       =&gt; -1,\n        ), $atts, &#039;food_menu&#039; );\n\n        \/\/ A little sanitization\n        if ( $atts&#91;&#039;include_type&#039;] ) {\n            $atts&#91;&#039;include_type&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_type&#039;] ) );\n        }\n\n        if ( $atts&#91;&#039;include_tag&#039;] ) {\n            $atts&#91;&#039;include_tag&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_tag&#039;] ) );\n        }\n\n        $atts&#91;&#039;showposts&#039;] = intval( $atts&#91;&#039;showposts&#039;] );\n\n        \/\/ enqueue shortcode styles when shortcode is used\n        wp_enqueue_style( &#039;ect-food-menu-style&#039;, plugins_url( &#039;css\/food-menu-shortcode.css&#039;, __FILE__ ), array(), &#039;20140326&#039; );\n        wp_enqueue_script( &#039;ect-food-menu-script&#039;, plugins_url( &#039;js\/food-menu-shortcode.js&#039;, __FILE__ ) , array( &#039;jquery&#039; ), &#039;20180530&#039;, false );\n\n        return self::ect_food_shortcode_html( $atts );\n    }\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Code file location<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">essential-content-types\/essential-content-types\/admin\/class-food-menu.php<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Essential Content Types [portfolio] Shortcode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8216;portfolio&#8217; shortcode from the Essential-Content-Types plugin allows users to customize the display of portfolio items on their site. The attributes include options to show\/hide types, tags, content, author, and filter. Users can also specify the number of columns, posts, and sorting order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode<\/strong>: <code>[portfolio]<\/code><\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a list of all possible portfolio shortcode parameters and attributes:<\/p>\n\n\n<ul>\n<li><code>display_types<\/code> &#8211; Determines if portfolio types are shown<\/li>\n<li><code>display_tags<\/code> &#8211; Defines if portfolio tags are displayed<\/li>\n<li><code>display_content<\/code> &#8211; Controls if portfolio content is shown<\/li>\n<li><code>display_author<\/code> &#8211; Decides if the author&#8217;s name is displayed<\/li>\n<li><code>show_filter<\/code> &#8211; Controls if the portfolio filter is shown<\/li>\n<li><code>include_type<\/code> &#8211; Includes specific portfolio types<\/li>\n<li><code>include_tag<\/code> &#8211; Includes specific portfolio tags<\/li>\n<li><code>columns<\/code> &#8211; Defines the number of columns in the portfolio grid<\/li>\n<li><code>showposts<\/code> &#8211; Determines the number of posts to show<\/li>\n<li><code>order<\/code> &#8211; Specifies the order of the portfolio items<\/li>\n<li><code>orderby<\/code> &#8211; Determines the parameter to order the portfolio items by<\/li>\n<\/ul>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Examples and Usage<\/h3>\n\n\n<p><strong>Basic example<\/strong> &#8211; The shortcode displays a portfolio with default settings. This includes displaying types, tags, and content, but not the author, with three columns and an unlimited number of posts ordered by date in descending order.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[portfolio \/]<\/code><\/pre>\n\n\n<p><strong>Advanced examples<\/strong><\/p>\n<p>Displaying a portfolio with specific type and tag, without content, and ordered by title in ascending order. The shortcode also specifies the number of posts to display as 10 and the number of columns as 4.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[portfolio display_content=false include_type=\"type1,type2\" include_tag=\"tag1,tag2\" showposts=10 columns=4 order=\"ASC\" orderby=\"title\" \/]<\/code><\/pre>\n\n\n<p>Displaying a portfolio with specific type and tag, including the author, without any filter, and ordered randomly. The shortcode also specifies the number of posts to display as 5 and the number of columns as 2.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[portfolio display_author=true show_filter=false include_type=\"type1,type2\" include_tag=\"tag1,tag2\" showposts=5 columns=2 orderby=\"rand\" \/]<\/code><\/pre>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Function Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In case you have difficulties debugging what causing issues with <code>[portfolio]<\/code> shortcode, check below the related PHP functions code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode line<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_shortcode( 'portfolio',                                                    array( $this, 'portfolio_shortcode' ) );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode PHP function<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; light: false; title: ; toolbar: true; notranslate\" title=\"\">\nfunction portfolio_shortcode( $atts ) {\n        \/\/ Default attributes\n        $atts = shortcode_atts( array(\n            &#039;display_types&#039;   =&gt; true,\n            &#039;display_tags&#039;    =&gt; true,\n            &#039;display_content&#039; =&gt; true,\n            &#039;display_author&#039;  =&gt; false,\n            &#039;show_filter&#039;     =&gt; false,\n            &#039;include_type&#039;    =&gt; false,\n            &#039;include_tag&#039;     =&gt; false,\n            &#039;columns&#039;         =&gt; 3,\n            &#039;showposts&#039;       =&gt; -1,\n            &#039;order&#039;           =&gt; &#039;DESC&#039;,\n            &#039;orderby&#039;         =&gt; &#039;date&#039;,\n        ), $atts, &#039;portfolio&#039; );\n\n        \/\/ A little sanitization\n        if ( $atts&#91;&#039;display_types&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_types&#039;] ) {\n            $atts&#91;&#039;display_types&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_tags&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_tags&#039;] ) {\n            $atts&#91;&#039;display_tags&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_author&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_author&#039;] ) {\n            $atts&#91;&#039;display_author&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;full&#039; != $atts&#91;&#039;display_content&#039;] ) {\n            $atts&#91;&#039;display_content&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;include_type&#039;] ) {\n            $atts&#91;&#039;include_type&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_type&#039;] ) );\n        }\n\n        if ( $atts&#91;&#039;include_tag&#039;] ) {\n            $atts&#91;&#039;include_tag&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_tag&#039;] ) );\n        }\n\n        \/\/ Check if column value is set to valid numbers or else set default value as 2\n        if( 1 &lt;= $atts&#91;&#039;columns&#039;] &amp;&amp; 6 &gt;= $atts&#91;&#039;columns&#039;] ) {\n            $atts&#91;&#039;columns&#039;] = absint( $atts&#91;&#039;columns&#039;] );\n        } else {\n            $atts&#91;&#039;columns&#039;] = 2;\n        }\n\n        $atts&#91;&#039;showposts&#039;] = intval( $atts&#91;&#039;showposts&#039;] );\n\n\n        if ( $atts&#91;&#039;order&#039;] ) {\n            $atts&#91;&#039;order&#039;] = urldecode( $atts&#91;&#039;order&#039;] );\n            $atts&#91;&#039;order&#039;] = strtoupper( $atts&#91;&#039;order&#039;] );\n            \/* if ( &#039;DESC&#039; != $atts&#91;&#039;order&#039;] ) {\n                $atts&#91;&#039;order&#039;] = &#039;ASC&#039;;\n            } *\/\n        }\n\n        if ( $atts&#91;&#039;orderby&#039;] ) {\n            $atts&#91;&#039;orderby&#039;] = urldecode( $atts&#91;&#039;orderby&#039;] );\n            $atts&#91;&#039;orderby&#039;] = strtolower( $atts&#91;&#039;orderby&#039;] );\n            $allowed_keys = array( &#039;author&#039;, &#039;date&#039;, &#039;title&#039;, &#039;rand&#039; );\n\n            $parsed = array();\n            foreach ( explode( &#039;,&#039;, $atts&#91;&#039;orderby&#039;] ) as $portfolio_index_number =&gt; $orderby ) {\n                if ( ! in_array( $orderby, $allowed_keys ) ) {\n                    continue;\n                }\n                $parsed&#91;] = $orderby;\n            }\n\n            if ( empty( $parsed ) ) {\n                unset( $atts&#91;&#039;orderby&#039;] );\n            } else {\n                $atts&#91;&#039;orderby&#039;] = implode( &#039; &#039;, $parsed );\n            }\n        }\n\n        \/\/ enqueue shortcode styles when shortcode is used\n        wp_enqueue_style( &#039;jetpack-portfolio-style&#039;, plugins_url( &#039;css\/portfolio-shortcode.css&#039;, __FILE__ ), array(), &#039;20140326&#039; );\n\n        return self::portfolio_shortcode_html( $atts );\n    }\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Code file location<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">essential-content-types\/essential-content-types\/admin\/class-portfolio.php<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Essential Content Types [services] Shortcode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8216;services&#8217; shortcode from Essential Content Types plugin dynamically displays service-related content. It allows customization of displayed attributes including images, types, tags, author, and content. \n\n\n\nIt also includes filters for specific service types or tags. The layout can be altered with adjustable columns and post numbers. It also offers control over the order of services displayed. \n\nShortcode: [services] \n\nThe shortcode enqueues a specific stylesheet, ensuring consistent styling when the shortcode is used. \n\nShortcode: [services]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode<\/strong>: <code>[services]<\/code><\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a list of all possible services shortcode parameters and attributes:<\/p>\n\n\n<ul>\n<li><code>image<\/code> &#8211; Controls if the service image is displayed or not.<\/li>\n<li><code>display_types<\/code> &#8211; Determines if the service types are visible.<\/li>\n<li><code>display_tags<\/code> &#8211; Decides if the service tags are shown.<\/li>\n<li><code>display_content<\/code> &#8211; Controls whether to display the service content.<\/li>\n<li><code>display_author<\/code> &#8211; Decides if the author&#8217;s name is displayed.<\/li>\n<li><code>show_filter<\/code> &#8211; Determines if a filter option is provided.<\/li>\n<li><code>include_type<\/code> &#8211; Specifies the types of services to include.<\/li>\n<li><code>include_tag<\/code> &#8211; Specifies the tags of services to include.<\/li>\n<li><code>columns<\/code> &#8211; Sets the number of columns for displaying services.<\/li>\n<li><code>showposts<\/code> &#8211; Determines the number of service posts to show.<\/li>\n<li><code>order<\/code> &#8211; Sets the order of the services, ascending or descending.<\/li>\n<li><code>orderby<\/code> &#8211; Determines the parameter to sort the services by.<\/li>\n<\/ul>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Examples and Usage<\/h3>\n\n\n<p><strong>Basic example<\/strong> &#8211; Display services with default attributes<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services]<\/code><\/pre>\n\n\n<p><strong>Advanced examples<\/strong><\/p>\n<p>Display services without images and author information<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services image=false display_author=false]<\/code><\/pre>\n\n\n<p>Display services with specific types and tags<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services include_type=\"type1,type2\" include_tag=\"tag1,tag2\"]<\/code><\/pre>\n\n\n<p>Display services in 4 columns, ordered by title in descending order<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services columns=4 order=\"desc\" orderby=\"title\"]<\/code><\/pre>\n\n\n<p>Display only 5 services<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services showposts=5]<\/code><\/pre>\n\n\n<p>Display services with full content<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[services display_content=\"full\"]<\/code><\/pre>\n\n\n<p>These examples demonstrate the flexibility of the &#8216;services&#8217; shortcode. You can customize the display of your services based on your specific needs by using different combinations of the available attributes.<\/p>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Function Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In case you have difficulties debugging what causing issues with <code>[services]<\/code> shortcode, check below the related PHP functions code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode line<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_shortcode( 'services',                                                    array( $this, 'service_shortcode' ) );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode PHP function<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; light: false; title: ; toolbar: true; notranslate\" title=\"\">\nfunction service_shortcode( $atts ) {\n        \/\/ Default attributes\n        $atts = shortcode_atts( array(\n            &#039;image&#039;           =&gt; true,\n            &#039;display_types&#039;   =&gt; true,\n            &#039;display_tags&#039;    =&gt; true,\n            &#039;display_content&#039; =&gt; true,\n            &#039;display_author&#039;  =&gt; false,\n            &#039;show_filter&#039;     =&gt; false,\n            &#039;include_type&#039;    =&gt; false,\n            &#039;include_tag&#039;     =&gt; false,\n            &#039;columns&#039;         =&gt; 2,\n            &#039;showposts&#039;       =&gt; -1,\n            &#039;order&#039;           =&gt; &#039;asc&#039;,\n            &#039;orderby&#039;         =&gt; &#039;date&#039;,\n        ), $atts, &#039;services&#039; );\n\n        \/\/ A little sanitization\n        if ( $atts&#91;&#039;image&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;image&#039;] ) {\n            $atts&#91;&#039;image&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_types&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_types&#039;] ) {\n            $atts&#91;&#039;display_types&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_tags&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_tags&#039;] ) {\n            $atts&#91;&#039;display_tags&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_author&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_author&#039;] ) {\n            $atts&#91;&#039;display_author&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;full&#039; != $atts&#91;&#039;display_content&#039;] ) {\n            $atts&#91;&#039;display_content&#039;] = false;\n        }\n\n        if ( $atts&#91;&#039;include_type&#039;] ) {\n            $atts&#91;&#039;include_type&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_type&#039;] ) );\n        }\n\n        if ( $atts&#91;&#039;include_tag&#039;] ) {\n            $atts&#91;&#039;include_tag&#039;] = explode( &#039;,&#039;, str_replace( &#039; &#039;, &#039;&#039;, $atts&#91;&#039;include_tag&#039;] ) );\n        }\n\n        \/\/ Check if column value is set to valid numbers or else set default value as 2\n        if( 1 &lt;= $atts&#91;&#039;columns&#039;] &amp;&amp; 6 &gt;= $atts&#91;&#039;columns&#039;] ) {\n            $atts&#91;&#039;columns&#039;] = absint( $atts&#91;&#039;columns&#039;] );\n        } else {\n            $atts&#91;&#039;columns&#039;] = 2;\n        }\n\n        $atts&#91;&#039;showposts&#039;] = intval( $atts&#91;&#039;showposts&#039;] );\n\n\n        if ( $atts&#91;&#039;order&#039;] ) {\n            $atts&#91;&#039;order&#039;] = urldecode( $atts&#91;&#039;order&#039;] );\n            $atts&#91;&#039;order&#039;] = strtoupper( $atts&#91;&#039;order&#039;] );\n            if ( &#039;DESC&#039; != $atts&#91;&#039;order&#039;] ) {\n                $atts&#91;&#039;order&#039;] = &#039;ASC&#039;;\n            }\n        }\n\n        if ( $atts&#91;&#039;orderby&#039;] ) {\n            $atts&#91;&#039;orderby&#039;] = urldecode( $atts&#91;&#039;orderby&#039;] );\n            $atts&#91;&#039;orderby&#039;] = strtolower( $atts&#91;&#039;orderby&#039;] );\n            $allowed_keys = array( &#039;author&#039;, &#039;date&#039;, &#039;title&#039;, &#039;rand&#039; );\n\n            $parsed = array();\n            foreach ( explode( &#039;,&#039;, $atts&#91;&#039;orderby&#039;] ) as $service_index_number =&gt; $orderby ) {\n                if ( ! in_array( $orderby, $allowed_keys ) ) {\n                    continue;\n                }\n                $parsed&#91;] = $orderby;\n            }\n\n            if ( empty( $parsed ) ) {\n                unset( $atts&#91;&#039;orderby&#039;] );\n            } else {\n                $atts&#91;&#039;orderby&#039;] = implode( &#039; &#039;, $parsed );\n            }\n        }\n\n        \/\/ enqueue shortcode styles when shortcode is used\n        wp_enqueue_style( &#039;service-style&#039;, plugins_url( &#039;css\/service-shortcode.css&#039;, __FILE__ ), array(), &#039;20140326&#039; );\n\n        return self::service_shortcode_html( $atts );\n    }\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Code file location<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">essential-content-types\/essential-content-types\/admin\/class-service.php<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Essential Content Types [jetpack_testimonials] Shortcode<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Jetpack Testimonials shortcode is a dynamic tool that displays testimonials on your site. It allows customization of content display, image inclusion, column number, and post order.\n\n\n\nThis shortcode can display full or partial content, include an image or not, and arrange testimonials in 1 or 2 columns. It also provides control over the number of posts shown and their order, sorted by author, date, title, or randomly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode<\/strong>: <code>[jetpack_testimonials]<\/code><\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a list of all possible jetpack_testimonials shortcode parameters and attributes:<\/p>\n\n\n<ul>\n<li><code>display_content<\/code> &#8211; Controls whether the testimonial content is displayed.<\/li>\n<li><code>image<\/code> &#8211; Determines if an image should be shown with the testimonial.<\/li>\n<li><code>columns<\/code> &#8211; Specifies the number of columns to display the testimonials in.<\/li>\n<li><code>showposts<\/code> &#8211; Indicates the number of testimonials to show.<\/li>\n<li><code>order<\/code> &#8211; Defines the order in which testimonials are displayed, either ascending (ASC) or descending (DESC).<\/li>\n<li><code>orderby<\/code> &#8211; Sets the criteria by which testimonials are sorted (by author, date, title, or randomly).<\/li>\n<\/ul>\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Examples and Usage<\/h3>\n\n\n<p><strong>Basic example<\/strong> &#8211; A simple use of the jetpack_testimonials shortcode to display testimonials in ascending order by date.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[jetpack_testimonials]<\/code><\/pre>\n\n\n<p><strong>Advanced examples<\/strong><\/p>\n<p>Displaying testimonials without the image and limiting the number of testimonials shown to 5.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[jetpack_testimonials image=false showposts=5]<\/code><\/pre>\n\n\n<p>Displaying testimonials in 2 columns, ordered randomly, without the full content display.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[jetpack_testimonials columns=2 orderby=rand display_content=false]<\/code><\/pre>\n\n\n<p>Displaying testimonials in descending order by the author, with the image and limiting the number of testimonials shown to 3.<\/p>\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[jetpack_testimonials order=desc orderby=author showposts=3 image=true]<\/code><\/pre>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Function Code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In case you have difficulties debugging what causing issues with <code>[jetpack_testimonials]<\/code> shortcode, check below the related PHP functions code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode line<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">add_shortcode( 'jetpack_testimonials', array( $this, 'jetpack_testimonial_shortcode' ) );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shortcode PHP function<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; light: false; title: ; toolbar: true; notranslate\" title=\"\">\nfunction jetpack_testimonial_shortcode( $atts ) {\n\t\t\/\/ Default attributes\n\t\t$atts = shortcode_atts(\n\t\t\tarray(\n\t\t\t\t&#039;display_content&#039; =&gt; true,\n\t\t\t\t&#039;image&#039;           =&gt; true,\n\t\t\t\t&#039;columns&#039;         =&gt; 1,\n\t\t\t\t&#039;showposts&#039;       =&gt; -1,\n\t\t\t\t&#039;order&#039;           =&gt; &#039;asc&#039;,\n\t\t\t\t&#039;orderby&#039;         =&gt; &#039;date&#039;,\n\t\t\t),\n\t\t\t$atts,\n\t\t\t&#039;testimonial&#039;\n\t\t);\n\n\t\t\/\/ A little sanitization\n\t\tif ( $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;display_content&#039;] &amp;&amp; &#039;full&#039; != $atts&#91;&#039;display_content&#039;] ) {\n\t\t\t$atts&#91;&#039;display_content&#039;] = false;\n\t\t}\n\n\t\tif ( $atts&#91;&#039;image&#039;] &amp;&amp; &#039;true&#039; != $atts&#91;&#039;image&#039;] ) {\n\t\t\t$atts&#91;&#039;image&#039;] = false;\n\t\t}\n\n\t\t\/\/ Check if column value is set to valid numbers or else set default value as 1\n\t\tif ( 1 == $atts&#91;&#039;columns&#039;] || 2 == $atts&#91;&#039;columns&#039;] ) {\n\t\t\t$atts&#91;&#039;columns&#039;] = absint( $atts&#91;&#039;columns&#039;] );\n\t\t} else {\n\t\t\t$atts&#91;&#039;columns&#039;] = 1;\n\t\t}\n\n\t\t$atts&#91;&#039;showposts&#039;] = intval( $atts&#91;&#039;showposts&#039;] );\n\n\t\tif ( $atts&#91;&#039;order&#039;] ) {\n\t\t\t$atts&#91;&#039;order&#039;] = urldecode( $atts&#91;&#039;order&#039;] );\n\t\t\t$atts&#91;&#039;order&#039;] = strtoupper( $atts&#91;&#039;order&#039;] );\n\t\t\tif ( &#039;DESC&#039; != $atts&#91;&#039;order&#039;] ) {\n\t\t\t\t$atts&#91;&#039;order&#039;] = &#039;ASC&#039;;\n\t\t\t}\n\t\t}\n\n\t\tif ( $atts&#91;&#039;orderby&#039;] ) {\n\t\t\t$atts&#91;&#039;orderby&#039;] = urldecode( $atts&#91;&#039;orderby&#039;] );\n\t\t\t$atts&#91;&#039;orderby&#039;] = strtolower( $atts&#91;&#039;orderby&#039;] );\n\t\t\t$allowed_keys    = array( &#039;author&#039;, &#039;date&#039;, &#039;title&#039;, &#039;rand&#039; );\n\n\t\t\t$parsed = array();\n\t\t\tforeach ( explode( &#039;,&#039;, $atts&#91;&#039;orderby&#039;] ) as $testimonial_index_number =&gt; $orderby ) {\n\t\t\t\tif ( ! in_array( $orderby, $allowed_keys ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t$parsed&#91;] = $orderby;\n\t\t\t}\n\n\t\t\tif ( empty( $parsed ) ) {\n\t\t\t\tunset( $atts&#91;&#039;orderby&#039;] );\n\t\t\t} else {\n\t\t\t\t$atts&#91;&#039;orderby&#039;] = implode( &#039; &#039;, $parsed );\n\t\t\t}\n\t\t}\n\n\t\t\/\/ enqueue shortcode styles when shortcode is used\n\t\twp_enqueue_style( &#039;jetpack-testimonial-style&#039;, plugins_url( &#039;css\/testimonial-shortcode.css&#039;, __FILE__ ), array(), &#039;20140326&#039; );\n\n\t\treturn self::jetpack_testimonial_shortcode_html( $atts );\n\t}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Code file location<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">essential-content-types\/essential-content-types\/admin\/class-testimonial.php<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now that you&#8217;ve learned how to embed the <strong>Essential Content Types Plugin shortcodes<\/strong>, understood the parameters, and seen code examples, it&#8217;s easy to use and debug any issue that might cause it to &#8216;not work&#8217;. If you still have difficulties with it, don&#8217;t hesitate to leave a comment below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Below, you&#8217;ll find a detailed guide on how to add the Essential Content Types Shortcodes to your WordPress website, including their parameters, examples, and PHP function code. Additionally, we&#8217;ll assist you with common issues that might cause the Essential Content Types Plugin shortcodes not to show or not to work correctly. Before starting, here is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"name":"Essential Content Types","slug":"","version":"2.2.2","author":"<a href=\"https:\/\/catchplugins.com\">Catch Plugins<\/a>","icons":"https:\/\/ps.w.org\/essential-content-types\/assets\/icon.svg?rev=1641004","plugin_tags":"{\"cms\":\"cms\",\"cpt\":\"cpt\",\"custom-post-types\":\"custom post types\",\"post\":\"post\",\"types\":\"types\"}","author_profile":"https:\/\/profiles.wordpress.org\/catchthemes\/","requires":"5.9","tested":"6.2.3","requires_php":"false","rating":60,"num_ratings":2,"active_installs":40000,"downloaded":707301,"last_updated":"2023-05-06 8:07pm GMT","added":"2017-04-20","homepage":"https:\/\/catchplugins.com\/plugins\/essential-content-types\/","short_description":"Essential Content Types allows you to feature the impressive content through different content\/post types on your website just the way you want it.","description":"\"Essential Content Types is a versatile WordPress plugin that enables you to effortlessly manage and display different types of content like testimonials, services, and portfolio, improving your website's functionality.\"","shortcodes":"[\"featured_content\",\"food_menu\",\"portfolio\",\"services\",\"jetpack_testimonials\"]","footnotes":""},"categories":[1],"tags":[],"class_list":["post-671","post","type-post","status-publish","format-standard","hentry","category-plugins"],"_links":{"self":[{"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/posts\/671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/comments?post=671"}],"version-history":[{"count":1,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/posts\/671\/revisions"}],"predecessor-version":[{"id":812,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/posts\/671\/revisions\/812"}],"wp:attachment":[{"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/media?parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/categories?post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpshortcode.org\/wp-json\/wp\/v2\/tags?post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}