HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux bsx-1-dev 6.8.0-101-generic #101-Ubuntu SMP PREEMPT_DYNAMIC Mon Feb 9 10:15:05 UTC 2026 x86_64
User: www-data (33)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wordpress-tooltips/directory/wppostdirectoryshortcode.php
<?php
if (!defined('ABSPATH'))
{
	exit;
}

// shortocode [postdirectory catid='38']
// shortocode [postdirectory limit=2]
// shortocode [postdirectory catname='directory']


function post_table_shortcode($atts)
{
    global $table_prefix, $wpdb, $post;

    $args = array('post_type' => 'post', 'post_status' => 'publish');

    $postarray = array();
    $m_single = array();

    $return_content = '';
    $return_content .= '<div class="tooltips_directory">';

    $limit_sql = '';
    if (isset($atts['limit'])) {
        $limit_number = sanitize_text_field($atts['limit']);
        $limit_sql = " limit %d ";
        $limit_sql = $wpdb->prepare($limit_sql, $limit_number);
    }

    $post_type = 'post';
    $user_args_catid_query = '';

    $user_args_catid = '';

	if ((isset($atts)) && (is_array($atts)) && (count($atts) > 0) && ((isset($atts['catid'])) || (isset($atts['catname']))))
	{
        if (isset($atts['catid'])) {
            $user_args_catid = sanitize_text_field($atts['catid']);
            $user_args_catid_array = explode(",", trim($user_args_catid));

            if ((!(empty($user_args_catid_array))) && (is_array($user_args_catid_array)) && (count($user_args_catid_array) > 0)) {
                $user_args_catid_array = array_filter($user_args_catid_array);
            }

            if ((is_array($user_args_catid_array)) && (count($user_args_catid_array) > 0)) {
                $user_args_catid_query = implode(',', $user_args_catid_array);

                $sql = $wpdb->prepare("
                    SELECT ID, post_title, post_content, post_excerpt
                    FROM $wpdb->posts wposts
                    LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
                    LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
                    WHERE wposts.post_type = 'post'
                        AND post_status='publish'
                        AND $wpdb->term_taxonomy.taxonomy = 'category'
                        AND $wpdb->term_taxonomy.term_id IN(%s)
                    ORDER BY wposts.post_title ASC $limit_sql 
                ", $user_args_catid_query );
            }
        }

        if (isset($atts['catname'])) {
            $user_args_catid = sanitize_text_field($atts['catname']);
            $user_args_catid_array = explode(",", trim($user_args_catid));

            if ((!(empty($user_args_catid_array))) && (is_array($user_args_catid_array)) && (count($user_args_catid_array) > 0)) {
                $user_args_catid_array = array_filter($user_args_catid_array);
            }

            if ((is_array($user_args_catid_array)) && (count($user_args_catid_array) > 0)) {
                $user_args_catid_query = implode("','", $user_args_catid_array);
                $sql = $wpdb->prepare("
                    SELECT ID, post_title, post_content, post_excerpt
                    FROM $wpdb->posts wposts
                    LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
                    LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
                    LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
                    WHERE wposts.post_type = 'post'
                        AND post_status='publish'
                        AND $wpdb->term_taxonomy.taxonomy = 'category'
                        AND $wpdb->terms.name IN('%s')
                    ORDER BY wposts.post_title ASC $limit_sql 
                ", $user_args_catid_query );
            }
        }
    } 
	else 
	{

		$sql = $wpdb->prepare("
			SELECT ID, post_title, post_content, post_excerpt FROM $wpdb->posts WHERE post_type=%s AND post_status='publish' order by post_title ASC $limit_sql 
		", $post_type );
    }


    $results = $wpdb->get_results($sql);

    $show_glossary_page_current_result = $results;

    $return_content .= '<div class="tooltips_list_start">';

    if ((!(empty($show_glossary_page_current_result))) && (is_array($show_glossary_page_current_result)) && (count($show_glossary_page_current_result) > 0)) {
        $m_single = array();
        foreach ($show_glossary_page_current_result as $single) {
            if ($post->ID == $single->ID) {
                continue;
            }

            if (empty($single->post_title)) {
                continue;
            }

            $return_content .= '<div class="tooltips_list">';
            $return_content .= '<span class="tooltips_table_items">';
            $return_content .= '<div class="tooltips_table">';
            $return_content .= '<div class="tooltips_table_title">';
            $enabGlossaryIndexPage = get_option("enabGlossaryIndexPage");
            if (empty($enabGlossaryIndexPage)) {
                $enabGlossaryIndexPage = 'YES';
            }

            if ($enabGlossaryIndexPage == 'YES') {
                $return_content .= '<a href="' . esc_url(get_permalink($single->ID)) . '">' . $single->post_title . '</a>';
            } else {
                $return_content .= $single->post_title;
            }


            $return_content .= '</div>';
            $return_content .= '<div class="tooltips_table_content">';

            $glossaryExcerptOrContentSelect = get_option("glossaryExcerptOrContentSelect");

            if ($glossaryExcerptOrContentSelect == 'glossaryexcerpt') {
                $m_content = $single->post_excerpt;
            }

            if ($glossaryExcerptOrContentSelect == 'glossarycontent') {

                $m_content = $single->post_content;
            }

            if (empty($glossaryExcerptOrContentSelect)) {

                $m_content = $single->post_content;
            }

            $return_content .= $m_content;
            $return_content .= '</div>';
            $return_content .= '</div>';
            $return_content .= '</span>';
            $return_content .= '</div>';
        }
    }
    $return_content .= '</div>';

    $return_content .= '</div>';
    $css_content = '';
    $return_content = $css_content . $return_content;

    return $return_content;
}

add_shortcode('posttable', 'post_table_shortcode', 10);
add_shortcode('postdirectory', 'post_table_shortcode', 10);