Function Reference: geodir_fix_virtual_page

Summary

Fixes if the GD pages are not installed correctly.

Global Values

$wpdb
(object) (required) WordPress Database object.

Default: None
$current_user
(object) (required) Current user object.

Default: None

Package

GeoDirectory

Parameters

$slug
(string) (required) The page slug.

Default: None
$page_title
(string) (required) The page title.

Default: None
$old_id
(int) (required) Old post ID.

Default: None
$option
(string) (required) Option meta key.

Default: None

Return Values

(bool)
  • Returns true when success.
  • false when failure.

Change Log

Since: 1.0.0

Source File

geodir_fix_virtual_page() is located in geodirectory-admin/admin_hooks_actions.php [Line: 1560]

Source Code

function geodir_fix_virtual_page($slug, $page_title, $old_id, $option)
{
    global $wpdb, $current_user;

    if (!empty($old_id)) {
        wp_delete_post($old_id, true);
    }//delete post if already there
    else {
        $page_found = $wpdb->get_var(
            $wpdb->prepare(
                "SELECT ID FROM " . $wpdb->posts . " WHERE post_name = %s LIMIT 1;",
                array($slug)
            )
        );
        wp_delete_post($page_found, true);

    }

    $page_data = array(
        'post_status' => 'publish',
        'post_type' => 'page',
        'post_author' => $current_user->ID,
        'post_name' => $slug,
        'post_title' => $page_title,
        'post_content' => '',
        'post_parent' => 0,
        'comment_status' => 'closed'
    );
    $page_id = wp_insert_post($page_data);
    update_option($option, $page_id);
    if ($page_id) {
        return true;
    } else {
        return false;
    }
}