Plugin Directory

Changeset 2962509


Ignore:
Timestamp:
09/04/2023 11:20:12 AM (3 years ago)
Author:
seomantis
Message:

fix and awesome seo updates for more rankings and get on top of google search engine serp
stay free bro, love for all

Location:
seo-keywords
Files:
76 added
6 edited

Legend:

Unmodified
Added
Removed
  • seo-keywords/trunk/README.txt

    r2864676 r2962509  
    44Tags: seo, keywords
    55Requires at least: 4.7
    6 Tested up to: 6.1.1
     6Tested up to: 6.2
    77Stable tag: 1.1.4
    88Requires PHP: 7.1
     
    2727
    2828== Upgrade Notice ==
     29
     30= 1.1.5 =
     31New feature: Related KW
     32
     33= 1.1.4 =
     34Removed last name form registration form
    2935
    3036= 1.1.3 =
  • seo-keywords/trunk/admin/class-seo-keywords-admin.php

    r2861305 r2962509  
    154154        global $post;
    155155        $seo_links_keywords = get_post_meta( $post->ID, 'seo_links_keywords', true);
     156        $seo_links_keywords_related = get_post_meta( $post->ID, 'seo_links_keywords_related', true);
    156157        $seo_links_keywords_impressions = get_post_meta( $post->ID, 'seo_links_keywords_impressions', true);
    157158        $seo_links_keywords_impressions = $seo_links_keywords_impressions != '' ? $seo_links_keywords_impressions : array();
     159
     160        $seo_links_keywords_clicks = get_post_meta( $post->ID, 'seo_links_keywords_clicks', true );
     161        $seo_links_keywords_clicks = $seo_links_keywords_clicks != '' ? $seo_links_keywords_clicks : array();
     162
     163        $seo_links_keywords_position = get_post_meta( $post->ID, 'seo_links_keywords_position', true );
     164        $seo_links_keywords_position = $seo_links_keywords_position != '' ? $seo_links_keywords_position : array();
     165
    158166        $seo_links_last_update = get_option( 'seo_links_last_update' );
    159167        $sc_api_key = get_option('sc_api_key');
     
    231239        $keyword_position = array();
    232240        $keyword_impressions = array();
     241        $keyword_clicks = array();
    233242        $most_relevant_keyword = array(); // Tutte le keyword escluse quelle della url corrente
    234         $seo_link_keywords = array(); // Tutte le keyword della url corrente
     243        $seo_link_keywords = array(); // Tutte le keyword della url corrente - match puntuale
     244        $seo_link_keywords_related = array(); // Tutte le keyword della url corrente - matchano le categorie e la root del sito
    235245        $internal_link_keywords_filtered = array(); // Tutte le keyword che matchano il titolo con il filtro sul numero di caratteri delle parole
    236246        $words = array();
     
    254264            $ga_key = str_replace('”', '"', $ga_key);
    255265
    256             // Nelle keyword seo Solo la URL del post
     266            // Match just the ga_url and the permalink
     267            if( $ga_url == $permalink ){
     268                $seo_link_keywords[] = $ga_key;
     269            }
     270
    257271            $ga_url_explode = array_filter( explode('/', str_replace( site_url(), '', $ga_url )) );
    258             $ga_url_post_name = array_pop( $ga_url_explode );
    259             //echo $permalink . " --> " . $ga_url_post_name . "\n";
    260             if( strpos( $permalink, $ga_url_post_name ) !== false ) {
    261                 $seo_link_keywords[] = $ga_key;
     272            $ga_url_post_name = array_pop( $ga_url_explode );
     273            if( strpos( $permalink, $ga_url_post_name ) !== false ) {
     274                $seo_link_keywords_related[] = $ga_key;
    262275            }
    263276
    264277            $keyword_position[$ga_key] = $row->position;
    265278            $keyword_impressions[$ga_key] += $row->impressions;
     279            $keyword_clicks[$ga_key] += $row->clicks;
    266280            $keyword_processed[] = $ga_key;
    267281        }
    268282
     283        $seo_link_keywords_related = array_diff( $seo_link_keywords_related, $seo_link_keywords );
     284
    269285        update_post_meta( $content_post->ID, 'seo_links_keywords', $seo_link_keywords);
     286        update_post_meta( $content_post->ID, 'seo_links_keywords_related', $seo_link_keywords_related);
    270287        update_post_meta( $content_post->ID, 'seo_links_keywords_filtered', $internal_link_keywords_filtered);
    271288        update_post_meta( $content_post->ID, 'internal_links_keywords_filtered', $internal_link_keywords_filtered);
    272289        update_post_meta( $content_post->ID, 'seo_links_keywords_position', $keyword_position);
    273290        update_post_meta( $content_post->ID, 'seo_links_keywords_impressions', $keyword_impressions);
     291        update_post_meta( $content_post->ID, 'seo_links_keywords_clicks', $keyword_clicks);
    274292        update_post_meta( $content_post->ID, 'most_relevant_keyword', $most_relevant_keyword);
    275293        update_post_meta( $content_post->ID, 'seo_links_all_keywords', $keyword_processed);
     
    280298            'post_content' => $content,
    281299            'seo_links_keywords' => $seo_link_keywords,
     300            'seo_links_keywords_related' => $seo_link_keywords_related,
    282301            'seo_links_keywords_filtered' => $internal_link_keywords_filtered,
    283302            'internal_links_keywords_filtered' => $internal_link_keywords_filtered,
    284303            'seo_links_keywords_position' => $keyword_position,
    285304            'seo_links_keywords_impressions' => $keyword_impressions,
     305            'seo_links_keywords_clicks' => $keyword_clicks,
    286306            'most_relevant_keyword' => $most_relevant_keyword,
    287307            'seo_links_all_keywords' => $keyword_processed,
     
    354374        $args = array(
    355375            'body'        => $post_data,
    356             'timeout'     => '5',
     376            'timeout'     => '30',
    357377            'redirection' => '5',
    358378            'httpversion' => '1.0',
     
    373393            $args = array(
    374394                'body'        => array('user_id' => $data->user_id ?? 0),
    375                 'timeout'     => '5',
     395                'timeout'     => '30',
    376396                'redirection' => '5',
    377397                'httpversion' => '1.0',
     
    420440        $args = array(
    421441            'body'        => $post_data,
    422             'timeout'     => '5',
     442            'timeout'     => '30',
    423443            'redirection' => '5',
    424444            'httpversion' => '1.0',
  • seo-keywords/trunk/admin/js/seo-keywords-admin.js

    r2855741 r2962509  
    125125             */
    126126            const seo_links_keywords_impressions = response.seo_links_keywords_impressions;
     127            const seo_links_keywords_clicks = response.seo_links_keywords_clicks;
     128            const seo_links_keywords_position = response.seo_links_keywords_position;
    127129            const seo_links_keywords_filtered = response.seo_links_keywords_filtered;
    128130            const seo_links_keywords = response.seo_links_keywords;
     131            const seo_links_keywords_related = response.seo_links_keywords_related;
    129132
    130133            <!-- SEO Keywords -->
     
    137140                <input type="text" id="seo_keywords_input" onkeyup="seoKeywordResearch('seo_keywords')" placeholder="Search for keyword.." style="margin-top: 16px;width: 100%;" />
    138141                <table style="margin: 8px 0;">
    139                     <thead>
    140142                    <tr>
    141                         <th scope="row" style="width:70%;cursor: pointer;">Keyword</th>
    142                         <th scope="row" style="cursor: pointer;">Impressions</th>
    143                     </tr>
    144                     </thead>
    145                     <tbody>`;
     143                        <th scope="row" style="width:55%;cursor: pointer;">Keyword</th>
     144                        <th scope="row" style="cursor: pointer;">Impr.</th>
     145                        <th scope="row" style="cursor: pointer;">Clicks</th>
     146                        <th scope="row" style="cursor: pointer;">Pos.</th>
     147                    </tr>`;
    146148
    147149            seo_keywords = [];
     
    167169                            `+ seo_keywords[ sk ] +`
    168170                        </td>
     171                        <td style="text-align: center;">
     172                            ` + seo_links_keywords_clicks[ sk ] + `                     
     173                        </td>
     174                        <td style="text-align: center;">
     175                            ` + seo_links_keywords_position[ sk ] + `                       
     176                        </td>
    169177                    </tr>`;
    170178            }
    171179
    172             seo_link_keywords_html += `</tbody>
    173                 </table>`;
     180            seo_link_keywords_html += `</table>`;
     181
     182            let seo_keywords_related = [];
     183            let seo_link_keywords_related_html = `
     184                <input type="text" id="seo_keywords_related_input" onkeyup="seoKeywordResearch('seo_keywords_related')" placeholder="Search for keyword.." style="margin-top: 16px;width: 100%;" />
     185                <table style="margin: 8px 0;">
     186                    <tr>
     187                        <th scope="row" style="width:55%;cursor: pointer;">Keyword</th>
     188                        <th scope="row" style="cursor: pointer;">Impr.</th>
     189                        <th scope="row" style="cursor: pointer;">Clicks</th>
     190                        <th scope="row" style="cursor: pointer;">Pos.</th>
     191                    </tr>`;
     192
     193            for( let slk in seo_links_keywords_related ) {
     194                seo_keywords_related[ seo_links_keywords_related[ slk ] ] = seo_links_keywords_impressions[ seo_links_keywords_related[ slk ] ];
     195            }
     196
     197            q_sorted = [];
     198            Seo_Keywords_bySortedValue( seo_keywords_related, function(key, value) {
     199                q_sorted[key] = value;
     200            });
     201            seo_keywords_related = q_sorted;
     202            let seo_keywords_related_index = 0;
     203            for( let sk in seo_keywords_related ) {
     204                seo_keywords_related_index++;
     205                seo_link_keywords_related_html += `
     206                    <tr class="seo_keywords">
     207                        <td>
     208                            `+ Seo_Keywords_stripslashes( sk ) +`
     209                        </td>
     210                        <td style="text-align: center;">
     211                            `+ seo_keywords_related[ sk ] +`
     212                        </td>
     213                        <td style="text-align: center;">
     214                            ` + seo_links_keywords_clicks[ sk ] + `                     
     215                        </td>
     216                        <td style="text-align: center;">
     217                            ` + seo_links_keywords_position[ sk ] + `                       
     218                        </td>
     219                    </tr>`;
     220            }
     221
     222            seo_link_keywords_related_html += `</table>`;
     223
    174224
    175225            if( seo_keywords_index == 0 ){
     
    195245
    196246            document.getElementById('seo_keywords').innerHTML = seo_link_keywords_html;
     247            document.getElementById('seo_keywords_related').innerHTML = seo_link_keywords_related_html;
    197248
    198249            if( seo_keywords_index == 0 ) {
     
    247298}
    248299
     300const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent;
     301
     302const comparer = (idx, asc) => (a, b) => ((v1, v2) =>
     303        v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ? v1 - v2 : v1.toString().localeCompare(v2)
     304)(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));
     305
     306// do the work...
     307document.querySelectorAll('.seo_keywords th, .seo_keywords_related th').forEach(th => th.addEventListener('click', (() => {
     308    const table = th.closest('table');
     309    Array.from(table.querySelectorAll('tr:nth-child(n+2)'))
     310        .sort(comparer(Array.from(th.parentNode.children).indexOf(th), this.asc = !this.asc))
     311        .forEach(tr => table.appendChild(tr) );
     312})));
     313
    249314(function( $ ) {
    250315    'use strict';
  • seo-keywords/trunk/admin/partials/seo-keywords-admin-metabox.php

    r2819943 r2962509  
    11<?php
    22    $seo_links_keywords = $seo_links_keywords ?? array();
     3    $seo_links_keywords_related = $seo_links_keywords_related ?? array();
    34    $seo_links_keywords_impressions = $seo_links_keywords_impressions ?? array();
     5    $seo_links_keywords_clicks = $seo_links_keywords_clicks ?? array();
     6    $seo_links_keywords_position = $seo_links_keywords_position ?? array();
    47    $seo_links_last_update = $seo_links_last_update ?? '';
    58    $sc_api_key = $sc_api_key ?? '';
    69    $seo_keywords_credits = $credits->seo_keywords ?? 0;
    710?>
     11<style>
     12    .seo_keywords_tab_title{
     13        margin: 0;
     14        font-size: 1rem;
     15        padding-bottom: 8px;
     16        cursor: pointer;
     17    }
     18    .seo_keywords_tab_title.active{
     19        font-weight: 600;
     20    }
     21</style>
    822<!-- SEO Keywords -->
    923<div class="tabs-panel">
     
    105119        </script>
    106120    <?php endif; ?>
     121    <script>
     122        function showRanked(){
     123            jQuery('.seo_keywords_tab_title.related').removeClass('active');
     124            jQuery('.seo_keywords_tab_title.ranked').addClass('active');
     125            jQuery('#seo_keywords').show();
     126            jQuery('#seo_keywords_related').hide();
     127        }
     128        function showRelated(){
     129            jQuery('.seo_keywords_tab_title.related').addClass('active');
     130            jQuery('.seo_keywords_tab_title.ranked').removeClass('active');
     131            jQuery('#seo_keywords').hide();
     132            jQuery('#seo_keywords_related').show();
     133        }
     134    </script>
     135    <div style="display: flex;align-items: center;justify-content: space-between;">
     136        <div class="seo_keywords_tab_title ranked active" onclick="showRanked();">Ranked KW</div>
     137        <div class="seo_keywords_tab_title related" onclick="showRelated();">Related KW</div>
     138    </div>
    107139    <div id="seo_keywords" style="max-height: 250px;overflow: scroll;">
    108         <?php if( $seo_links_keywords ) : ?>
     140        <?php if( $seo_links_keywords_position ) : ?>
    109141            <input type="text" id="seo_keywords_input" onkeyup="seoKeywordResearch('seo_keywords')" placeholder="Search for keyword.." style="margin-top: 16px;width: 100%;" />
    110142            <table style="margin: 8px 0;">
    111                 <thead>
    112143                <tr>
    113                     <th scope="row" style="width:70%;cursor: pointer;">Keyword</th>
    114                     <th scope="row" style="cursor: pointer;">Impressions</th>
     144                    <th scope="row" style="cursor: pointer;width: 55%;">Keyword</th>
     145                    <th scope="row" style="cursor: pointer;">Impr.</th>
     146                    <th scope="row" style="cursor: pointer;">Clicks</th>
     147                    <th scope="row" style="cursor: pointer;">Pos.</th>
    115148                </tr>
    116                 </thead>
    117                 <tbody>
    118149                <?php
    119150                $seo_keywords = array();
     
    131162                            <?php echo esc_html( $seo_position ); ?>
    132163                        </td>
     164                        <td style="text-align: center;">
     165                            <?php echo esc_html( $seo_links_keywords_clicks[ $seo_link ] ); ?>
     166                        </td>
     167                        <td style="text-align: center;">
     168                            <?php echo esc_html( $seo_links_keywords_position[ $seo_link ] ); ?>
     169                        </td>
    133170                    </tr>
    134171                <?php endforeach; ?>
    135                 </tbody>
     172            </table>
     173        <?php else: ?>
     174            <p style="margin: 8px 0;">Add those relevant keywords to your content to optimize it for search engines.</p>
     175            <p style="margin: 8px 0;">Click "get keywords" to receive keyword suggestions.</p>
     176        <?php endif; ?>
     177    </div>
     178    <div id="seo_keywords_related" style="max-height: 250px;overflow: scroll;display:none;">
     179        <?php if( $seo_links_keywords_related ) : ?>
     180            <input type="text" id="seo_keywords_related_input" onkeyup="seoKeywordResearch('seo_keywords_related')" placeholder="Search for keyword.." style="margin-top: 16px;width: 100%;" />
     181            <table style="margin: 8px 0;">
     182                <tr>
     183                    <th scope="row" style="cursor: pointer;width:55%;">Keyword</th>
     184                    <th scope="row" style="cursor: pointer;">Impr.</th>
     185                    <th scope="row" style="cursor: pointer;">Clicks</th>
     186                    <th scope="row" style="cursor: pointer;">Pos.</th>
     187                </tr>
     188                <?php
     189                $seo_keywords = array();
     190                foreach( $seo_links_keywords_related as $seo_link ) :
     191                    $seo_keywords[ $seo_link ] = $seo_links_keywords_impressions[$seo_link];
     192                endforeach;
     193                arsort( $seo_keywords );
     194                ?>
     195                <?php foreach( $seo_keywords as $seo_link => $seo_position ) : ?>
     196                    <tr class="seo_keywords">
     197                        <td>
     198                            <?php echo esc_html( $seo_link ); ?>
     199                        </td>
     200                        <td style="text-align: center;">
     201                            <?php echo esc_html( $seo_position ); ?>
     202                        </td>
     203                        <td style="text-align: center;">
     204                            <?php echo esc_html( $seo_links_keywords_clicks[ $seo_link ] ); ?>
     205                        </td>
     206                        <td style="text-align: center;">
     207                            <?php echo esc_html( $seo_links_keywords_position[ $seo_link ] ); ?>
     208                        </td>
     209                    </tr>
     210                <?php endforeach; ?>
    136211            </table>
    137212        <?php else: ?>
  • seo-keywords/trunk/admin/partials/seo-keywords-admin-settings.php

    r2819943 r2962509  
    130130                            <td><input name="name" type="text" id="name" class="regular-text"></td>
    131131                        </tr>
     132                        <!--
    132133                        <tr>
    133134                            <th scope="row">
     
    136137                            <td><input name="surname" type="text" id="surname" class="regular-text"></td>
    137138                        </tr>
     139                        -->
    138140                        <tr>
    139141                            <th scope="row">
  • seo-keywords/trunk/seo-keywords.php

    r2861305 r2962509  
    1717 * Plugin URI:        https://wpseoplugins.org/seo-keywords/
    1818 * Description:       SEO Keywords is a powerful plugin that helps you add keywords in your wordpress posts. Automate keywords building with ease!
    19  * Version:           1.1.3
     19 * Version:           1.1.5
    2020 * Author:            WP SEO Plugins
    2121 * Author URI:        https://wpseoplugins.org/
     
    4242define( 'SEO_KEYWORDS_SITE_URL', ( SEO_KEYWORDS_SERVER_PORT == 80 ? 'http://' : 'https://' ) . SEO_KEYWORDS_SERVER_NAME );
    4343define( 'SEO_KEYWORDS_SERVER_REQUEST_URI', sanitize_text_field( $_SERVER['REQUEST_URI'] ) );
    44 define( 'SEO_KEYWORDS_VERSION', '1.1.3' );
     44define( 'SEO_KEYWORDS_VERSION', '1.1.5' );
    4545
    4646/**
Note: See TracChangeset for help on using the changeset viewer.