Contents

1. Updating WPBakery Page Builder with the theme

2. Increasing Post Maximum Size

3. Manually editing user rating on a post

4. I do not receive emails from the contact form?

5. Editing registration emails

6. What SEO plugin do you recommend?

7. Why can't I see ratings in my Google search results?

8. How I do I disable the WordPress Admin Bar for users?

9. How to add custom fields

10. How do I add hub categories to my navigation menus?

11. How do I remove the comments section from pages?

12. How do I display related posts based on categories instead of tags?

13. I get the following error message "select2-css CDN unavailable. Some controls may not render properly."

14. I cannot access the drop down menu links on Android devices?

15. I get a "Warning: Cannot assign an empty string to a string offset" when installing the theme?

16. How do I fix the header at the top of the page?

17. Load More Button showing duplicate content

18. How do I change the user rating and/or number of votes?

19. How can I edit and/or register new image sizes?

20. How do I change the WooCommerce product page image dimensions?

21. How can I remove the slider gradients?

22. "The link you followed has expired. Please try again." error

23. How do users add avatars (images) to their profiles?

24. Why do I have so many different versions of the same image on my server?

25. Can I display different widgets on different categories?

26. Default image dimensions and registering new image dimensions

27. Adding page settings to custom post types, taxonomies and templates

28. Does the theme support Cyrillic or Georgian characters?

29. How do I manually add a review score that is not an average of the multi criteria?

30. Limit the number of cores using MAGICK_THREAD_LIMIT

31. After updating Aardvark my style customisations are not working

32. Using Hub Fields With Foreign Characters

33. Adding shortcodes via custom fields

34. Updating the theme and bundled plugins

35. Error messages on Youzify Activity page

36. How do I edit the footer logo?

37. How do I enable comments on pages?

38. How do I change options on custom page templates and custom post types?

39. WPBakery Page Builder says I need to activate a license?

40. Adding Google Webfonts

41. Increasing WordPress Upload Limit

42. How do I add a custom captcha to the pop login and register forms?

43. How do I allow users to register to my site?

44. Editing registration emails

45. How do I remove specific entries from activity stream?

46. How do I change the width of the theme?

47. How do I disable Google Fonts?

48. How do I add/edit the favicon?

49. How do I add comments to the parent hub page?

50. Creating a clickable page background

51. How do I change the size of the videos in the lightbox?

52. Media uploaded via Activity post are not shown

53. I can't login after clicking my BuddyPress email activation link?

54. Why do I not see the featured images on my site?

55. I would like a refund?

56. What size are the page header images?

57. Using Custom Endpoints / Global Tabs

58. Grey images when importing demo data

59. How do I remove the shadows from my text?

60. Adding new fonts to your website

61. I get a Page Not Found error when I click on links?

62. How do I restrict access to the BuddyPress members directory and profile pages?

63. How do I add a BuddyPress cover image?

64. How can I remove the decimal points from my ratings?

65. Adding custom post/page options

66. Removing the copyright text from Youzify Panel

67. I can see shortcodes in my excerpts - how do I use custom excerpts?

68. How do I show the back to top button on mobile/tablet devices?

69. How do I change the colour and opacity of the dark gradients?

70. Users can't see activity when Youzify is activated

71. How do I change the size of the WooCommerce images

72. How can I remove the decimal points from my ratings?

73. Creating BuddyPress Profile Menus

74. Why am I not receiving emails?

75. How do I change the widget header background color?

76. Can I import more than one demo on my site?

77. Editing the BuddyPress profile tabs

78. How can I order posts by views daily, weekly or monthly?

79. I can't see my members in my Members Directory?

80. How do I change the order of the hub tabs?

81. How do I resize Google ads on my site?

82. I can't see the BuddyPress/bbPress pages?

83. How do I centre the logo and/or navigation?

84. Enabling the "BuddyPress Legacy" Template Pack

85. My site is running slow, what can I do?

86. I get an error of type E_ERROR from class-tgm-plugin-activation.php

87. How do I modify X and Y on my BuddyPress pages?

88. Issues with Redux metaboxes extension on WordPress.com server

89. How do I add/remove widgets and Visual Composer elements to the sidebar?

90. Pagination is not working on my posts

91. How do I add new fonts to theme options backend?

92. Increasing Maximum Input Vars

93. Experiencing issues after updating from Youzer to Youzify

94. I cannot see the icons on my site?

95. How do I find my ThemeForest Item Purchase Code?

96. How do I display the hub title in the browser on child pages when using WordPress SEO plugin?

97. Can't edit review templates with WPBakery Page Builder

98. How do I add a Favicon to my site?

99. How do I disable the Gutenberg editor?

100. How do I redirect back to the pages list after using the Automatic Hub Creation form?

101. I can't login because it says "Incorrect Captcha"?

102. How do I change the page the login form redirects to?

103. Translating the months in release dates

104. How can I make the slider transition automatically?

105. Increasing PHP Memory Limit

106. Adding Elementor editor to review templates

107. Updating your PHP version

108. How do I open the affiliate button link in a new window?

109. How do I convert a lot of my posts to review pages?

110. How do I restrict access to BuddyPress content?

111. Why did you remove this theme?

112. How do I stop my site reloading the fonts with a preload effect?

113. I can't save the Theme Options page?

114. How do I remove category links from showing up?

115. I can't change the site title and description on the homepage?

116. Finding the cause of your issue(s)

117. How do I modify the BuddyPress registration fields/template?

118. Modifying Youzify BuddyPress pages

119. My page(s) look weird?

120. I cannot import the demo data

121. How do I change or add new BuddyPress profile icons?

122. CDN images are not working on my site?

123. How do I set up the bbPress forum like the demo?

124. My plugins are automatically inserting content into my sidebar and footer?

125. Adding WPBakery Page Builder editor to review templates

126. How do I remove the latest activity update in the profile header?

127. How do I insert advertisements on my site?

128. My translations are no longer working since the theme update?

129. Increasing PHP Maximum Execution Time

130. It says the theme is broken or missing a style sheet?

131. I can't update the theme - it says update failed?

132. How do I set Web Hosting details?

133. I cannot see any related posts?

134. I cannot see my posts when I order by views?

135. Switching To Tablet and Mobile View in Elementor

136. How do I add/edit/remove theme options?

137. Ordering posts by views

138. My site crashes when I try to create a new post/page?

139. Using comment plugins such as Disqus

140. Can a user delete their user rating?

141. How do I create BuddyPress groups?

142. How do I show inactive members in my BuddyPress members directory?

143. Adding different menus to different pages

144. How do I add/remove breadcrumbs?

145. Changing the hub tab titles globally

146. Theme and Youzify login forms

147. Adding comments to hub pages

148. How to I add new child pages to auto hub form?

1. Updating WPBakery Page Builder with the theme

If a WPBakery Page Builder update is available you will see a notice in your dashboard. Unless you purchased the plugin separately you cannot update the plugin automatically. You will need to wait for a theme update to be released which will include the updated version of the WPBakery Page Builder which you can then update from Appearance > Install Plugins.

2. Increasing Post Maximum Size

To increase the Post Maximum Size do the following:

Step 1: Locate the php.ini file inside the /wp-admin directory using an FTP client or file manager in your web hosting control panel (if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Find the following line in your php.ini file:

post_max_size

Step 3: Increase the value to 64MB or higher and save the file.

Step 4: If you still have issues, look for this file in your root directory and make the same changes.

3. Manually editing user rating on a post

To manually edit the user rating on a post add the following to your child theme's functions.php file:

function ghostpool_update_average_user_rating() {
  
    $post_id = 123; 
    
    $rating_data = array();
    
    $rating_data['average_rating'] = 7;
    
    $rating_data['rating_sum'] = 100; // Total of all the user ratings added together
    
    $rating_data['user_votes'] = 1;
    
    $rating_data['criteria'] = array(
        array( 'criterion' => 'Criterion 1', 'rating' => 5 ),
        array( 'criterion' => 'Criterion 2', 'rating' => 2 ),
        array( 'criterion' => 'Criterion 3', 'rating' => 3 ),
    );    
        
    update_post_meta( $post_id, 'gp_post_user_rating_data', $rating_data );
    update_post_meta( $post_id, 'gp_average_user_rating', $rating_data['average_rating'] );
    update_post_meta( $post_id, 'gp_user_votes', $rating_data['user_votes'] );
    
}
add_action( 'init', 'ghostpool_update_average_user_rating' );

Edit the post ID, average rating, rating sum, user votes and criterion data to what you want. If the post has no criteria ratings replace this with:

$rating_data['criteria'] = array();  

Now go to your post and refresh the page. Once the user rating has been updated remove this code from your functions.php file.

4. I do not receive emails from the contact form?

The are several reasons why you may not be receiving the emails: 1. Your emails are being sent to your spam/junk mail folder 2. You have entered the wrong email address in the contact form shortcode 3. Your web host does not allow you to send emails from the same address your are receiving the emails to 4. Your web host does not support PHPMail, you will need to contact them about this or switch hosts (I recommend DreamHosts) 5. Your web host (in most cases GoDaddy) does not allow contact forms to send emails to certain email providers (e.g. yahoo.com, hotmail.com etc), you will need to contact them about this or switch hosts (I recommend DreamHosts)

5. Editing registration emails

If you are using BuddyPress then this plugin controls the registration emails not the theme. To change BuddyPress emails see: https://codex.buddypress.org/emails/

If you're not using BuddyPress you can add the following filters to your child theme's functions.php file:

// Change admin's registration notice email subject
function ghostpool_registration_notice_subject( $gp_blogname ) {
    return 'Hi [%s]';
}
add_filter( 'gp_registration_notice_subject', 'ghostpool_registration_notice_subject', 10, 5 );
// Change admin's registration notice email text
function ghostpool_registration_notice_message( $gp_message, $gp_blogname, $gp_user_login, $gp_user_email ) {
    $gp_message  = sprintf( esc_html__( 'New user registration on your blog %s:', 'gauge' ), $gp_blogname ) . "\r\n\r\n";
    $gp_message .= sprintf( esc_html__( 'Username: %s', 'gauge' ), $gp_user_login ) . "\r\n\r\n";
    $gp_message .= sprintf( esc_html__( 'Email: %s', 'gauge' ), $gp_user_email ) . "\r\n";
    return $gp_message;    
}
add_filter( 'gp_registration_notice_message', 'ghostpool_registration_notice_message', 10, 5 );
// Change user's email subject
function ghostpool_registered_user_subject( $gp_blogname ) {
    return 'Hi [%s]';
}
add_filter( 'gp_registered_user_subject', 'ghostpool_registered_user_subject', 10, 5 );
// Change user's email text
function ghostpool_registered_user_message( $gp_message, $gp_blogname, $gp_user_login, $gp_user_email ) {
    $gp_message  = esc_html__( 'Hi there,', 'gauge' ) . "\r\n\r\n";
    $gp_message .= sprintf( esc_html__( 'Welcome to %s.', 'gauge' ), $gp_blogname ) . "\r\n\r\n";
    $gp_message .= sprintf( esc_html__( 'Username: %s', 'gauge' ), $gp_user_login ) . "\r\n";
    $gp_message .= esc_html__( 'Password: [use the password you entered when signing up]', 'gauge' ) . "\r\n\r\n";
    $gp_message .= 'Please login at ' . home_url( '/#login' ) . "\r\n\r\n";    
    return $gp_message;    
}
add_filter( 'gp_registered_user_message', 'ghostpool_registered_user_message', 10, 5 );

6. What SEO plugin do you recommend?

All my themes work well with "Yoast SEO" WordPress plugin: https://wordpress.org/plugins/wordpress-seo/

7. Why can't I see ratings in my Google search results?

While the theme has full schema markup so Google can display the ratings in search results it can take quite a while for Google to crawl your site and even then they may decide not to display the ratings in their search results. You can confirm that Google is reading your ratings by running a review page through https://developers.google.com/structured-data/testing-tool/ It should return all the rating data for that page meaning Google can display this data in their search results.

Also make sure you're using the latest version of the theme to ensure it has the latest schema markup and rich snippet support. To update the theme and/or plugins check out the help file that comes with your download inside the "Help" folder and refer to the "Updating The Theme" section.

8. How I do I disable the WordPress Admin Bar for users?

WordPress is adding the admin bar to your website, not the theme. You can use the following plugin to disable the admin bar: https://en-gb.wordpress.org/plugins/hide-admin-bar/

If you're using BuddyPress go to Settings > BuddyPress > Options and disable the Toolbar option.

9. How to add custom fields

There are two ways to add custom fields depending on if you're using the Gutenberg Editor or Classic Editor.

Gutenberg Editor

  1. Edit or create a new post and click Options button in the top right corner. 
  2. Select Preferences from the dropdown menu to open the Preferences window.
  3. Click the Panels tab and then enable the Custom fields option - reload the page when asked to.
  1. Once the page is reloaded scroll down to the bottom of the page where you will see a new Custom Fields panel.
  2. Click the Enter New link and then give your custom field a name and the value you want to display.
  3. Finally click the Add Custom Field button.



Classic Editor

  1. Edit or create a new post and click Screen Options button in the top right corner. 
  2. Check the Custom Fields option.
  1. Scroll down to the bottom of the page where you will see a new Custom Fields panel.
  2. Click the Enter new link and then give your custom field a name and the value you want to display.
  3. Finally click the Add Custom Field button.


10. How do I add hub categories to my navigation menus?

Go to Appearance -> Menus and in the top-right corner click the Screen Options button and check the Hub Categories option. You will now be able to add hub categories to your menus.

11. How do I remove the comments section from pages?

Go to Pages -> All Pages and edit the desired pages. In the top right corner of the page click the Screen Options button and make sure the Discussion box is checked. Now scroll down the page and locate the discussion panel and uncheck the Allow comments box.

12. How do I display related posts based on categories instead of tags?

Open buddy/lib/admin/inc/shortcodes/related-posts.php and find:

$tags = wp_get_post_tags($id);
$tempQuery = $wp_query;

if($tags) {
$tag_ids = array();

foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'post_type' => explode(',', $content),
'post_status' => 'publish',
'cat' => $cats,
'paged' => 1,
'ignore_sticky_posts' => 0,
'orderby' => $orderby,
'order' => $order,
'posts_per_page' => $per_page,
'offset' => $offset,
'tag__in' => $tag_ids,
'post__not_in' => array($id)
);

Replace with:

$tags = get_the_category($id);
$tempQuery = $wp_query;

if($tags) {
$tag_ids = array();

foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'post_type' => explode(',', $content),
'post_status' => 'publish',
'cat' => $cats,
'paged' => 1,
'ignore_sticky_posts' => 0,
'orderby' => $orderby,
'order' => $order,
'posts_per_page' => $per_page,
'offset' => $offset,
'category__in' => $tag_ids,
'post__not_in' => array($id)
);

 

13. I get the following error message "select2-css CDN unavailable. Some controls may not render properly."

The Redux theme options framework loads some files from an external CDN server rather than loading them from your own server to improve the page load speed. If the CDN server goes down and you will receive this error but it usually fixes itself very quickly. If the error message does not go away then your server may not allow CDN files to be loaded. If this is the case ask your host to enable this, but if they can't you will need to host the files yourself.

To do this download the following plugin at https://github.com/reduxframework/redux-vendor-support/archive/master.zip and install and active it on your site.

Now open lib/framework/theme-config.php and find:

'use_cdn'              => true,

Replace with:

'use_cdn'              => false,

14. I cannot access the drop down menu links on Android devices?

By default Android will redirect to the top level menu item link URL as soon as it is tapped. To display a submenu, users must tap, and without lifting their finger slide off of the menu item.

15. I get a "Warning: Cannot assign an empty string to a string offset" when installing the theme?

If you see the following warning after importing the demo content:

Warning: Cannot assign an empty string to a string offset in /.../wp-includes/class.wp-scripts.php on line 454

This is being caused by the rtMedia plugin. In your admin panel, click rtMedia tab and save the page. This will remove the warning from your site.

16. How do I fix the header at the top of the page?

Go to Theme Options > CSS Settings and add:

#header {
position: fixed;
width: 1200px;
}

@media only screen and (min-width: 1024px) and (max-width: 1199px) {
	#header {
	width: 1000px;
	}
}

@media only screen and (min-width: 960px) and (max-width: 1023px) {
	#header {
	width: 900px;
	}
}

@media only screen and (min-width: 768px) and (max-width: 959px) {
	#header {
	width: 748px;
	}
}

@media only screen and (max-width: 767px) {
	#header {
	width: 100%;
	}
}

#content-wrapper {
margin-top: 70px;
}

 

17. Load More Button showing duplicate content

If you're loading new posts using the Load More Button option in the Posts element it will load duplicate content if you have also set an Offset. To fix this add the following to your child theme's functions.php file:

function ghostpool_adjust_load_more_offset_pagination( $found_posts, $query ) {
    if ( ! is_admin() && ! $query->is_main_query() && isset( $query->query_vars['offset'] ) ) {
        $offset = $query->query_vars['offset'];
        return $found_posts - $query->offset;
    } else {
        return $found_posts;
    }    
}
add_filter( 'found_posts', 'ghostpool_adjust_load_more_offset_pagination', 1, 2 );
function ghostpool_load_more_current_queries( $query ) {
   
    if ( is_admin() OR $query->is_main_query() ) {
        return;
    }
    
    if ( isset( $query->query_vars['offset'] ) ) {
        $offset = $query->query_vars['offset'];
    } else {
        return;
    }
    $posts_per_page = $query->query_vars['posts_per_page'];
        
    if ( $query->is_paged() ) {
        $page_offset = $offset + ( ( $query->query_vars['paged'] - 1 ) * $posts_per_page );
        $query->set( 'offset', $page_offset );
    } else {
        $query->set( 'offset', $offset );
    }
    
}    
add_action( 'pre_get_posts', 'ghostpool_load_more_current_queries' );

Make sure to change the $offset and $posts_per_page values to what you have set in your Posts element.

18. How do I change the user rating and/or number of votes?

Install the following plugin: https://wordpress.org/plugins/show-hidden-post-meta/ 

Now edit the hub page with the user rating and/or votes you want to edit and scroll down to the Custom Fields panel and edit the value of the _gp_user_rating and _gp_user_votes field.

If you don't see the Custom Fields panel, click the Screen Options tab in the top right corner and check the Custom Fields option.

19. How can I edit and/or register new image sizes?

This theme uses WordPress's native image resize function add_image_size(). You can edit the theme's predefined image sizes by adding the following code to your child theme's functions.php file. You can change the image width, height and cropping options (including cropping position) for any of the image sizes. You will then need to run the Regenerate Thumbnails plugin after uploading these changes to recrop all your images to the new dimensions.

function ghostpool_image_sizes() {                
    add_theme_support( 'post-thumbnails' );
    add_image_size( 'ghostpool-featured-image', 780, 500, false );
    add_image_size( 'ghostpool-page-header-image', 1400, 596, true );
    add_image_size( 'ghostpool-related-image', 576, 356, true );
    add_image_size( 'ghostpool-col-category-image', 576, 356, true );
    add_image_size( 'ghostpool-one-col-category-image', 780, 500, true );
    add_image_size( 'ghostpool-list-category-image', 250, 135, true );
    add_image_size( 'ghostpool-image-tab', 231, 231, true );
    add_image_size( 'ghostpool-posts-widget-image', 100, 80, true );
    add_image_size( 'ghostpool-featured-box-large-image', 979, 438, true );
    add_image_size( 'ghostpool-featured-box-small-image', 639, 200, true );
    add_image_size( 'ghostpool-menu-image', 206, 127, true );
    add_image_size( 'ghostpool-rating-box-image', 730, 310, true );                    
}

Additionally, the GP Blog Posts widget and Blog Visual Composer element have an option to choose from one of the predefined image sizes. If you want to add your own image sizes to the selection, instead of changing a predefined image, copy the following code to your child theme's functions.php file and add your new image sizes as shown below:

function ghostpool_image_sizes() {                
    add_theme_support( 'post-thumbnails' );
    add_image_size( 'ghostpool-featured-image', 780, 500, false );
    add_image_size( 'ghostpool-page-header-image', 1400, 596, true );
    add_image_size( 'ghostpool-related-image', 576, 356, true );
    add_image_size( 'ghostpool-col-category-image', 576, 356, true );
    add_image_size( 'ghostpool-one-col-category-image', 780, 500, true );
    add_image_size( 'ghostpool-list-category-image', 250, 135, true );
    add_image_size( 'ghostpool-image-tab', 231, 231, true );
    add_image_size( 'ghostpool-posts-widget-image', 100, 80, true );
    add_image_size( 'ghostpool-featured-box-large-image', 979, 438, true );
    add_image_size( 'ghostpool-featured-box-small-image', 639, 200, true );
    add_image_size( 'ghostpool-menu-image', 206, 127, true );
    add_image_size( 'ghostpool-rating-box-image', 730, 310, true );  
    add_image_size( 'ghostpool-new-image-name-1', 100, 100, true ); // New image size
    add_image_size( 'ghostpool-new-image-name-2', 500, 900, false ); // New image size                     
}

20. How do I change the WooCommerce product page image dimensions?

Go to WooCommerce -> Settings -> Products and change the "Single Product Image" dimensions.

You will not see a change on product pages even though the images are being cropped to the sizes you specify because WooCommerce is still stretching the images to 48% of the container width. You'll need to edit the widths with CSS, e.g.

/* Image Width */

.woocommerce #content div.product div.images,.woocommerce div.product div.images,.woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images {
width: 48%;
}


/* Container to the right width */

.woocommerce #content div.product div.summary,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.summary, .woocommerce-page div.product div.summary {
width: 48%;
}

21. How can I remove the slider gradients?

Edit your homepage, scroll down to the FlexSlider Options panel where you can disable the Bottom Gradient Overlay and Side Gradient Overlay options.

Additionally you may want to disable the gradient coming from the header. To do this go to Theme Options > Styling > Page Header and disable Page Header Top Gradient Overlay.

22. "The link you followed has expired. Please try again." error

You are seeing this error because the theme is too big to be uploaded to your site. This is because your web host has set one of the following too low:

- PHP Memory Limit (should be 256MB or higher)

- Post Maximum Size (should be 64MB or higher)

- WordPress Upload Limit (should be 64MB or higher)

Follow the links for how to increase each of these values.

Alternatively you can upload the theme through an FTP client or file manager in your cPanel. To set up an FTP client refer to the WordPress documentation on this http://codex.wordpress.org/FTP_Clients.

Once you have set up your FTP client upload the aardvark theme folder to /wp-content/themes/ directory on your server.


23. How do users add avatars (images) to their profiles?

WordPress uses Gravatar to add avatars (user images). Register a free account at http://gravatar.com, associate it with the email you're using on your WordPress site and upload your avatar image. Now go back to your site and within a short amount of time your avatar will show up in your comments, profile page etc. If you want people to upload an avatar from your own site instead, use a plugin such as "Add Local Avatar".

24. Why do I have so many different versions of the same image on my server?

If you look in your uploads folder and see different versions of the same image this is perfectly normal. The theme crops each image to different sizes because these sizes are used in various places on your website. So you may have the same image shown as a 50 x 50 thumbnail and as a large featured image at 800 x 400. The theme will create two additional versions of these images at these dimensions.

This is much more effective than just creating a few different sizes of an image (thumbnail, medium, large), like some themes do, and then resizing them using HTML. If you were to resize a large image with HTML, the large image is still being loaded and then constrained with HTML, which uses more bandwidth and increases your page load time, which in turn is not very SEO friendly. What the theme does is only load the images at the exact size they need to be.

The theme does not currently delete versions of the images no longer in use. So if you change the featured image on your posts from 800 x 400 to 500 x 300 and then to 400 x 600 all of these images will be created but the images no longer used (800 x 400 and 500 x 300) will not be deleted from your server. This is something I hope to add in the future.

You can just leave these images on your server and ignore them because they are not being loaded on your site so they have no impact on your bandwidth or pageload, these just contribute to a bit of disk space.

However you can delete all the resized images in your uploads folders and the server will then only recreate the different image sizes that currently exist on your site. Before doing this first make a backup of your uploads folder and do not delete the original images, only the resized versions that have the extensions -widthxheight.png!

25. Can I display different widgets on different categories?

Yes you can do this using the "Display Widgets" WordPress plugin, which allows you to specify which posts, pages and/or categories individual widgets are displayed on.

26. Default image dimensions and registering new image dimensions

This theme uses WordPress's native image resize function add_image_size(). You can edit the theme's predefined image sizes by adding the following code to your child theme's functions.php file. You can change the image width, height and cropping options (including cropping position) for any of the image sizes. You will then need to run the Regenerate Thumbnails plugin after uploading these changes to recrop all your images to the new dimensions.

function ghostpool_image_sizes() {                
    add_image_size( 'gp_small_image', 75, 75, true );
    add_image_size( 'gp_list_image', 250, 135, true );
    add_image_size( 'gp_square_image', 300, 300, true );
    add_image_size( 'gp_featured_image', 864, 467, true );
    add_image_size( 'gp_column_image', 727, 393, true );
    add_image_size( 'gp_related_image', 414, 224, true );
    add_image_size( 'gp_featured_box_small_image', 330, 240, true );    
    add_image_size( 'gp_featured_box_large_image', 600, 480, true );    
    add_image_size( 'gp_featured_box_full_image', 1260, 480, true );            
}

If you want to add your own image sizes to the selection, instead of changing a predefined image, add the following code to your child theme's functions.php file and add your new image sizes as shown below:

function ghostpool_register_new_image_sizes() {          
    add_image_size( 'ghostpool-new-image-name-1', 100, 100, true );
    add_image_size( 'ghostpool-new-image-name-2', 500, 900, false );              
}
add_action( 'after_setup_theme', 'ghostpool_register_new_image_sizes' );

27. Adding page settings to custom post types, taxonomies and templates

Add the following to your child theme's functions.php file:

function ghostpool_custom_page_settings( $settings ) {
    
    // Custom page template
    if ( is_page_template( 'custom-page-template.php' ) ) {
        $settings['header'] = 'gp-fullwidth-page-header';
        $settings['layout'] = 'gp-left-sidebar';
    }
    // Custom post type
    if ( is_singular( 'custom_post_type' ) ) {
       $settings['header'] = 'gp-standard-page-header';
       $settings['layout'] = 'gp-right-sidebar';
    }
    // Attachment page
    if ( is_attachment() ) {
        $settings['header'] ='gp-page-header-disabled';
        $settings['layout'] = 'gp-no-sidebar';
    }
    return $settings;
}
add_filter( 'ghostpool_page_settings', 'ghostpool_custom_page_settings' );

In this example you're loading your own header and layout settings for a custom page template, custom post type and attachment page. You can see all the available settings from aardvark/lib/framework/settings/load-settings.php.

28. Does the theme support Cyrillic or Georgian characters?

There may be some conflicts with the custom post type options and these characters. To fix this use the https://wordpress.org/plugins/cyr3lat/ plugin to convert Cyrillic and Georgian characters to Latin.

29. How do I manually add a review score that is not an average of the multi criteria?

I never recommend editing the parent theme files but if you really want to add your own review score manually without it being an average of the multiple ratings you've added do the following:

Open lib/inc/ratings.php and find:

$GLOBALS['ghostpool_total_score'] = number_format( $GLOBALS['ghostpool_site_rating_sum'] / count( $GLOBALS['ghostpool_site_rating'] ), 1 ) + 0;

Replace with:

$GLOBALS['ghostpool_total_score'] = $GLOBALS['ghostpool_site_rating'][0];

Find:

$GLOBALS['ghostpool_total_score'] = number_format( $GLOBALS['ghostpool_site_rating_sum'] / count( $GLOBALS['ghostpool_site_rating'] ), 1 ) + 0;

Replace with:

$GLOBALS['ghostpool_total_score'] = number_format( $GLOBALS['ghostpool_site_rating'][0], 1 ) + 0;

Open lib/sections/review-results.php and find:

$gp_site_ratings = $GLOBALS['ghostpool_site_rating'];

Replace with:

$gp_site_ratings = array_slice( $GLOBALS['ghostpool_site_rating'], 1 );

Now the first rating will only be used for the main score and the first criteria will not be used.

30. Limit the number of cores using MAGICK_THREAD_LIMIT

In certain versions of ImageMagick there is a problem when trying to import the demo images and the system becomes extremely slow. This causes the demo importer to never complete. You can use a workaround to fix this as follows:

Access the root of your WordPress installation (located in the same folder as your /wp-content/ and /wp-admin/ directories) using an FTP client or file manager in your web hosting control panel where your .htaccess is located. If you can’t find it, then look at this article on why you can’t find the .htaccess file and how to find it.

Next, add this line to your .htaccess file:

SetEnv MAGICK_THREAD_LIMIT 1

This code limits the number of cores using MAGICK_THREAD_LIMIT which is used when uploading the demo images.

31. After updating Aardvark my style customisations are not working

There has been a change to the way the Aardvark Child loads the parent and child style.css files. You will need to update your child theme functions.php to fix this. Find:

/**
 * Load parent style.css
 *
 */
if ( ! function_exists( 'ghostpool_enqueue_child_styles' ) ) {
    function ghostpool_enqueue_child_styles() { 
        wp_enqueue_style( 'gp-parent-style', get_template_directory_uri() . '/style.css' );
    }
}
add_action( 'wp_enqueue_scripts', 'ghostpool_enqueue_child_styles' );

Replace with:

/**
 * Load child theme style.css
 *
 */
if ( ! function_exists( 'ghostpool_enqueue_child_styles' ) ) {
    function ghostpool_enqueue_child_styles() { 
        wp_enqueue_style( 'ghostpool-style', get_template_directory_uri() . '/style.css', array(), AARDVARK_THEME_VERSION );
        wp_enqueue_style( 'ghostpool-child-style', get_stylesheet_directory_uri() . '/style.css', array( 'ghostpool-style' ), AARDVARK_THEME_VERSION );
        wp_style_add_data( 'ghostpool-child-style', 'rtl', 'replace' );
    }
}
add_action( 'wp_enqueue_scripts', 'ghostpool_enqueue_child_styles' );

32. Using Hub Fields With Foreign Characters

If you're using a character set other than latin hub fields will not work by default. If you're using Cyrillic characters then you can use the following plugin https://wordpress.org/plugins/cyr3lat/, otherwise read below:

Go to Appearance > Editor and edit your child theme's functions.php file and add the following just before the last occurrence of ?>:

function ghostpool_hub_field_characters() {
    $char_table = array(
        'A' => 'a',
        'B' => 'b',
        'C' => 'c',
    );
    return $char_table;
}

Where "A" is your character and "a" is the equivalent latin character. Do this for all the letters in your alphabet.

Now your hub fields will use latin characters for the slugs but you will still use your character set when the field is shown on the site.

33. Adding shortcodes via custom fields

Go to Plugins > Add New and search for "Advanced Custom Fields". Install and activate this plugin.

In your child theme's functions.php file add:

function ghostpool_shortcode_meta( $value, $name ) {
    if ( get_field( $name ) ) {        
        return do_shortcode( get_field( $name ) );
    } else {        
        return $value;
    }
}
add_filter( 'ghostpool_post_meta_custom_field', 'ghostpool_shortcode_meta', 10, 2 );

Now you can use the Post Meta element. Set the Type setting to Custom Field and in the Custom Field Name give the name of the custom field you'll be adding your shortcode to.

On the desired post create a new custom field with the name you used above and the value as the shortcode.

34. Updating the theme and bundled plugins

It is important that you keep the theme and bundled plugins (those plugins that came with the theme) up to date.

To update the theme please see: https://ghostpool.com/documentation/aardvark/getting-started/updating-the-theme/

Once you've updated the theme you'll likely need to update some of the bundled plugins. To update the bundled plugins please see: https://ghostpool.com/documentation/aardvark/getting-started/updating-the-plugins/

35. Error messages on Youzify Activity page

If you are getting the following error message on your Youzify Actitivty page:

"Notice: Undefined index: in /nas/content/staging/aardvarkdemo/wp-content/plugins/youzify/includes/public/core/wall/yz-class-privacy.php on line 255"

Add the following code to your functions.php file and then refresh the Activity page twice. Now remove the code from your functions.php file and this should fix the issue.

36. How do I edit the footer logo?

The logo in the footer is just an image inserted into the widget area in the footer.

To change or remove this logo go to Appearance > Widgets and click on the Footer 1 widget area. You will see a text widget which contains the logo code:

[vc_single_image image="3492" alignment="center" border_color="grey" img_link_target="_self" styling="margin-bottom: 0px;"]

You can replace this code with your own HTML image tag e.g.

<img src="http://domain/com/image-name.png" alt="" />

Alternatively go to Pages > Add New and insert the Single Image element into the page and change the settings to whatever you want for your footer logo. Switch to Classic Mode and click the Text tab and copy and paste this code in the Text widget.

37. How do I enable comments on pages?

Go to Settings -> Discussion and make sure Allow people to post comments on new article is checked.

Now on any page click the Screen Options button in the top right corner of the page and check the Discussion option.

Since WordPress 4.3 comments are not enabled on pages by default - to enable them use the following plugin: https://wordpress.org/plugins/no-page-comment/

38. How do I change options on custom page templates and custom post types?

To change the options on custom page templates and custom post types in your child theme's functions.php file add:

function ghostpool_custom_init_variables() {
    // Custom page template
    if ( is_page_template( 'custom-template.php' ) ) {
        $GLOBALS['ghostpool_title'] = 'gp-large-page-header';
        $GLOBALS['ghostpool_layout'] =  'gp-no-sidebar';
        $GLOBALS['ghostpool_sidebar'] = 'gp-standard-sidebar';
    }
    // Custom post type
    if ( is_singular( 'custom_post_type' ) ) {
        $GLOBALS['ghostpool_title'] = 'gp-large-page-header';
        $GLOBALS['ghostpool_layout'] =  'gp-no-sidebar';
        $GLOBALS['ghostpool_sidebar'] = 'gp-standard-sidebar';
    }
    // Attachment page
    if ( is_attachment() ) {
        $GLOBALS['ghostpool_title'] = 'gp-large-page-header';
        $GLOBALS['ghostpool_layout'] =  'gp-no-sidebar';
        $GLOBALS['ghostpool_sidebar'] = 'gp-standard-sidebar';
    }
}

Some of the option names may vary from theme to theme. You can view all the available options and the correct names in lib/inc/init-variables.php.


39. WPBakery Page Builder says I need to activate a license?

The full version of WPBakery Page Builder (previously known as Visual Composer) comes with this theme. You do not need to activate a license to use it.

Free updates for the plugin will be included whenever the theme itself is updated. So after updating the theme you will see a notice at the top of your backend pages to update the WPBakery Page Builder if necessary.

You only need a license for two reasons:

1) You want to receive automatic plugin updates directly from the WPBakery developers rather than waiting for them to be included in a theme update.

2) You want to access the Template Library for additional page builder templates.

To get a license you need to purchase the plugin yourself.


40. Adding Google Webfonts

1) In your child theme's functions.php file add:

function ghostpool_google_webfonts() {
    echo '';
}
add_action( 'wp_head', 'ghostpool_google_webfonts' );

Make sure you activate the child theme to load this code.

2) Go to Google Web Fonts website, select the font you want to use and copy the "Standard" code provided e.g.

<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">

3) Add this to your code above e.g.

function ghostpool_google_webfonts() {
    echo '<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">';
}
add_action( 'wp_head', 'ghostpool_google_webfonts' );

4) Now go to Appearance > Theme Options > Styling and add the name of the font in one of the Font text fields.

41. Increasing WordPress Upload Limit

To increase the WordPress Upload Limit do the following:

Step 1: Locate the php.ini file inside the wp-admin directory (if you’re not sure how to do this, ignore the steps below and contact your webhost who can do this for you).

Step 2: Find the following line in your php.ini file:

upload_max_filesize

Step 3: Increase the value to 64MB or higher and save the file.

Step 4: If you still have issues, look for this file in your root directory and make the same changes.

42. How do I add a custom captcha to the pop login and register forms?

In your child theme's functions.php add the following:

function ghostpool_custom_captcha() {
    
    /* Validation code goes here */
    
    return $captcha;
}
function ghostpool_custom_captcha_display() {
    
    /* Code to display captcha goes here */
    
}

You will need to get the validation code and display code for the captcha plugin that the plugin website should provide.

43. How do I allow users to register to my site?

This is a general WordPress option that can be found under Settings -> General -> Anyone can register.

If you're using BuddyPress the register page should have been created automatically. If it has not, create a new page called "Register" and publish it. Now go to Settings -> BuddyPress -> Pages and select this page from the Registration dropdown menu. Now you can link to this page in your menus from Appearance > Menus.

44. Editing registration emails

If you are using BuddyPress then this plugin controls the registration emails not the theme. To change BuddyPress emails see: https://codex.buddypress.org/emails/

If you're not using BuddyPress you can add the following filters to your child theme's functions.php file:

// Change admin's registration notice email subject
function ghostpool_registration_notice_subject( $blogname ) {
    return 'Hi [%s]';
}
add_filter( 'ghostpool_email_registration_notice_subject', 'ghostpool_registration_notice_subject' );
// Change admin's registration notice email text
function ghostpool_registration_notice_message( $message, $blogname, $user_login, $user_email ) {
    $message  = sprintf( esc_html__( 'New user registration on your blog %s:', 'aardvark-plugin' ), $blogname ) . "\r\n\r\n";
    $message .= sprintf( esc_html__( 'Username: %s', 'aardvark-plugin' ), $user_login ) . "\r\n\r\n";
    $message .= sprintf( esc_html__( 'Email: %s', 'aardvark-plugin' ), $user_email ) . "\r\n";
    return $message;    
}
add_filter( 'ghostpool_email_registration_notice_message', 'ghostpool_registration_notice_message', 10, 4 );
// Change user's email subject
function ghostpool_registered_user_subject( $blogname ) {
    return 'Hi [%s]';
}
add_filter( 'ghostpool_registered_user_subject', 'ghostpool_registered_user_subject' );
// Change user's email text
function ghostpool_registered_user_message( $message, $blogname, $user_login ) {
    $message  = esc_html__( 'Hi there,', 'aardvark-plugin' ) . "\r\n\r\n";
    $message .= sprintf( esc_html__( 'Welcome to %s.', 'aardvark-plugin' ), $blogname ) . "\r\n\r\n";
    $message .= sprintf( esc_html__( 'Username: %s', 'aardvark-plugin' ), $user_login ) . "\r\n";
    $message .= esc_html__( 'Password: [use the password you entered when signing up]', 'aardvark-plugin' ) . "\r\n\r\n";
    $message .= esc_html__( 'Please login at', 'aardvark' ) . ' ' . wp_login_url() . "\r\n\r\n";
    return $message;    
}
add_filter( 'ghostpool_registered_user_message', 'ghostpool_registered_user_message', 10, 3 );

45. How do I remove specific entries from activity stream?

If you want to exclude certain activity entries from your activity stream add the following to your child theme's functions.php file:

function ghostpool_activity_dont_save( $activity_object ) {
    $exclude = array(
        'new_avatar',
        'new_member',
        'friendship_accepted',
        'friendship_created',
        'joined_group',
        'new_blog_comment',
        'bbp_topic_create',
        'bbp_reply_create',
    );
    if ( in_array( $activity_object->type, $exclude ) ) {
        $activity_object->type = false;
    }
    
}
add_action( 'bp_activity_before_save', 'ghostpool_activity_dont_save', 10, 1 );

You can change the type of entries you want to remove from the activity stream by editing the $exclude list.

46. How do I change the width of the theme?

Go to Theme Options -> Styling and in the CSS Code box add:

@media only screen and (min-width: 1461px) {

    .gp-boxed-layout #gp-page-wrapper,
    .gp-container {
    width: 1460px;
    }
    #gp-content {
    width: 1100px;
    }
    .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 1430px;
    }
    .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 1200px;
    }
    .gp-both-sidebars #gp-content {
    width: 780px;
    }
    .gp-sidebar {
    width: 300px;        
    }

}


@media only screen and (min-width: 1321px) {

    .gp-responsive.gp-boxed-layout #gp-page-wrapper,
    .gp-responsive .gp-container {
    width: 1320px;
    }
    .gp-responsive #gp-content {
    width: 960px;
    }
    .gp-responsive .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 1290px;
    }
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 1060px;
    }
    .gp-responsive.gp-both-sidebars #gp-content {
    width: 640px;
    }

}



@media only screen and (min-width: 1261px) {

    .gp-responsive.gp-boxed-layout #gp-page-wrapper,
    .gp-responsive .gp-container {
    width: 1260px;
    }
    .gp-responsive #gp-content {
    width: 900px;
    }
    .gp-responsive .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 1230px;
    }
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 1000px;
    }
    .gp-responsive.gp-both-sidebars #gp-content {
    width: 580px;
    }

}



@media only screen and (min-width: 1121px) {

    .gp-responsive.gp-boxed-layout #gp-page-wrapper,
    .gp-responsive .gp-container {
    width: 1120px;
    }
    .gp-responsive #gp-content {
    width: 760px;
    }
    .gp-responsive .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 1090px;
    }
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 860px;
    }
    .gp-responsive.gp-both-sidebars #gp-content {
    width: 480px;
    }    
    .gp-responsive.gp-both-sidebars .gp-sidebar {
    width: 280px;
    }    
    
}



@media only screen and (min-width: 1083px) {
    
    .gp-responsive.gp-boxed-layout #gp-page-wrapper,
    .gp-responsive .gp-container {
    width: 1082px;
    }
    .gp-responsive #gp-content {
    width: 722px;
    }
    .gp-responsive .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 1052px;
    }
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 822px;
    }
    .gp-responsive.gp-both-sidebars #gp-content {
    width: 722px;
    }
    .gp-responsive.gp-both-sidebars #gp-sidebar-right {
    width: 300px;
    }


}



@media only screen and (min-width: 1024px) { 


    .gp-responsive.gp-boxed-layout #gp-page-wrapper,
    .gp-responsive .gp-container {
    width: 1024px;
    }
    .gp-responsive #gp-content,
    .gp-responsive.gp-both-sidebars #gp-content {
    width: 664px;
    }
    .gp-responsive .gp-nav .menu li.gp-megamenu > .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .sub-menu,
    .gp-responsive .gp-nav .menu li.gp-content-menu .gp-inner-loop {
    width: 994px;
    }
    .gp-responsive .gp-nav .menu li.gp-tab-content-menu .gp-inner-loop {
    width: 764px;
    }    
    
}

Change the widths for each media query to the desired values.

47. How do I disable Google Fonts?

In your child theme's functions.php file add the following:

function ghostpool_disable_google_fonts_link() {
     return true;
}
add_filter( 'ghostpool_disable_google_fonts_link', 'ghostpool_disable_google_fonts_link' );


48. How do I add/edit the favicon?

This is a core WordPress option and not part of the theme. Go to Appearance > Customize > Site Identity > Site Icon to change the favicon.

49. How do I add comments to the parent hub page?

Copy hub-template.php and to your child theme and find:

</article>

Above this add:

<?php comments_template(); ?>

Now go a hub page, edit it and click the Screen Options button in the top right corner of the page and make sure the Discussions option is checked. Finally scroll down to the Discussion panel and check the Allow comments option.


50. Creating a clickable page background

You will need to copy header.php from your parent theme to your child theme and then edit the file. 

Find:

<body>

Below this add:

<a href="https://your-link.com" target="_blank" class="gp-takeover"></a>

Now go to Theme Options > Styling and in the CSS Code box add:

.gp-takeover {     
position: absolute;     
display: block;     
width: 100%;     
height: 100%;     
z-index: 1;     
cursor: pointer; 
}
.gp-site-wrapper {     
position: relative;     
z-index: 999; 
}

51. How do I change the size of the videos in the lightbox?

You need to add the desired width and height to the video URL. For example for a YouTube video with the URL http://youtu.be/oeuHxC1cF0o you would add the following to the end of the URL &width=500&height=250 to give http://youtu.be/oeuHxC1cF0o&width=500&height=250. This will give you a video with a width of 500px and a height of 250px.

52. Media uploaded via Activity post are not shown

Media such as images uploaded when posting an Activity update using Youzer plugin may not show in the posted activity entry. To fix this add the following code to your functions.php file.

Now refresh your Activity page twice, then remove the code and the issue should be solved.


53. I can't login after clicking my BuddyPress email activation link?

The issue is the page URL contains the activation link which does not work with the popup modal login window. To fix this use the BP Autologin on Activation plugin which automatically logs the user in after clicking the email activation link.

54. Why do I not see the featured images on my site?

1) Make sure you have selected a featured image for each post/page/slide.

2) Make sure you have not set the image width to 0 or left it empty on the Theme Options pages, Also make sure you've not set it to 0 (it can be left empty) on individual post/pages and shortcodes.

3) Make sure you have an image editor installed on your server such as GD Library or ImageMagick. If you are not sure please ask your web host about this.

4) CDN hosted images are not supported - the images need to be uploaded to the server the site is on.

55. I would like a refund?

Before requesting a refund

If you're having any issues with a theme you've just purchased this can be incredibly frustrating, however in most cases the issues can be quickly resolved.

How to request a refund

If you have not yet downloaded the theme you can request a refund, no questions asked, from: https://themeforest.net/refund_requests/new

If you have downloaded the theme this means you now have a copy of the theme and will only be eligible for a refund if it meets one or more of the following criteria:

Refund process

Before I can issue a refund I need to determine that the theme is causing your issues (in most refund request cases, it turns out not to be).

To do this please open a support ticket at https://ghostpool.ticksy.com and describe your problems in as much detail as possible, providing any error messages you receive and the steps to replicate the problem.

If it does turn out to be a theme issue and I cannot fix it, you will be issued with a full refund.

Why a refund will not given

You will not receive a refund in the following situations:



56. What size are the page header images?

The page header image is a background image which is not a fixed width. If you are using the full width page header format then the image width will depend on the size of the browser window. I would suggest using an image of the size 1170px x466px.

57. Using Custom Endpoints / Global Tabs

If you want to create global custom tabs on all hubs follow the steps below. In this example we're going to create a new tab called "Guides".

1) Go to Theme Options > Hubs > Custom Endpoints and add a custom endpoint called "guides".

2) Scroll down to the Hub Tab Order and add %GLOBAL_TAB_guides% to display this endpoint in the hub tabs.

3) Next go to Pages > Add New and create a page called "Guides" and make sure the page slug matches the endpoint "guides". 

4) Add the Blog WPBakery Page Builder element to the page and enable the Post Association option and enter the category slug "guides".

5) Now create a category called "Guides" (with the slug "guides") and assign posts to this category. You can then associate posts with specific hubs from the Hub Association option. 

6) The "Guides" tab on each hub will only display posts in the "Guides" category associated with the specific hub your viewing.

58. Grey images when importing demo data

When you import that demo data the images seen on the demo site are not imported, instead plain grey images are imported. This is done for two reasons:

1) These images are copyrighted and not licensed for distribution.

2) These images would increase the size and execution time of the import dramatically making it more likely the import failing.

59. How do I remove the shadows from my text?

Go to Theme Options > Styling and in the Custom CSS box add:

.gp-page-header .gp-entry-title,
.gp-page-header .gp-subtitle {
text-shadow: none;
}

#gp-main-nav .menu > li > a {
text-shadow: none;
}

60. Adding new fonts to your website

To add new fonts to your website do the following:

Step 1: Upload your fonts with the format (.ttf, .otf, .woff, .eot, .woff2) to your child theme in the directory wp-content/themes/child-theme-name/fonts/

Step 2: Create a new file called fonts.css and upload it to wp-content/themes/child-theme-name/fonts/. Add the following code to this file:

@font-face {
font-family: 'My Web Font 1';
font-style: normal;
font-weight: 500;
src: url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
     url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
     url('webfont.ttf') format('truetype'); /* Safari, Android, iOS */
}

Step 3: In your child theme's functions.php file add:

function ghostpool_enqueue_new_fonts() {
    wp_enqueue_style( 'ghostpool-new-fonts', get_stylesheet_directory_uri() . '/fonts/fonts.css' );
}
add_action( 'wp_enqueue_scripts', 'ghostpool_enqueue_new_fonts' );
function ghostpool_add_new_font_families( $output ) {
    $new_fonts = array(
        'My Web Font 1',
    );
    $output = array_merge( $output, $new_fonts );
    return $output;
}
add_filter( 'ghostpool_font_families', 'ghostpool_add_new_font_families' );

Where 'My Web Font 1' is the display name.


61. I get a Page Not Found error when I click on links?

Sometimes your server rewrite rules need flushing. To do this go to Settings -> Permalinks and save the page.

In some cases you may need to change the permalink structure. To do this in the Custom Structure field add the following:

/%category%/%postname%/

Now save the page.

62. How do I restrict access to the BuddyPress members directory and profile pages?

You will need to be use the Paid Membership Pro plugin to create membership levels, charge for access and restrict specific content. You'll also need to use the BuddyPress Add On to control access to specific BuddyPress content. However this plugin does not allow you to control access to the members directory and profiles by default.

1) To add this functionality in your child theme's functions.php file add:

/**
 * Restrict viewing of the members directory and individual profiles if the user doesn't have access
 *
 */
if ( defined( 'PMPRO_VERSION' ) && defined( 'PMPROBP_DIR' ) && function_exists( 'bp_is_active' ) && ! function_exists( 'ghostpool_pmpro_bp_restrict_member_viewing' ) ) {
    function ghostpool_pmpro_bp_restrict_member_viewing() {
        if ( ! function_exists( 'pmpro_getMembershipLevelForUser' ) ) {
            return;
        }
    
        if ( ! is_buddypress() ) {
            return;
        }
        
        global $current_user;
        $user_id = $current_user->ID;
    
        if ( ! empty( $user_id ) ) {
            $level = pmpro_getMembershipLevelForUser( $user_id );
        }
        if ( ! empty( $level ) ) {
            $level_id = $level->id;
        } else {
            $level_id = 0;    // non-member user
        }
        if ( ! bp_is_user() && bp_is_members_component() && $level_id === 0 ) {        
            //pmpro_bp_redirect_to_access_required_page();
        }
        if ( bp_is_user() && $level_id === 0 ) {
            pmpro_bp_redirect_to_access_required_page();
        }
    
    }
    add_action( 'template_redirect', 'ghostpool_pmpro_bp_restrict_member_viewing' );
}

3) You can control what membership levels can access the members directory by editing the following code:

if ( ! bp_is_user() && bp_is_members_component() && $level_id === 0 ) {        
    //pmpro_bp_redirect_to_access_required_page();
}

Change 0 to whatever level cannot access the members directory. 0 refers to members without any level. Uncomment "pmpro_bp_redirect_to_access_required_page();" to enable the restriction.

4) You can control what membership levels can access the member profiles by editing the following code:

if ( bp_is_user() && $level_id === 0 ) {            
    pmpro_bp_redirect_to_access_required_page();        
}    

Change 0 to whatever level cannot access the members directory. 0 refers to members without any level. Comment "pmpro_bp_redirect_to_access_required_page();" to disable the restriction.

63. How do I add a BuddyPress cover image?

Go to Settings > BuddyPress, click the Options tab and make sure Allow registered members to upload cover images is checked. Now go to your BuddyPress profile page, by clicking your username anywhere on the site and click Change Cover Image link.

64. How can I remove the decimal points from my ratings?

To remove the decimal points from your ratings open lib/inc/ratings.php and lib/sections/user-rating-box.php and find each occurrence of number_format and change the 1 within the brackets to 0, so for example this:

number_format( $GLOBALS['ghostpool_site_rating'], 1 ) 

Becomes:

number_format( $GLOBALS['ghostpool_site_rating'], 0 ) 

Next open lib/scripts/user-ratings.js and find:

if ( ghostpool_rating.rating != '' ) {
    var score = ghostpool_rating.rating;
} else {
    var score = this.readCookie('ghostpool_rating_score_' + ghostpool_rating.post_id);
}

Replace with:

if ( ghostpool_rating.rating != '' ) {
    var score = Math.floor( ghostpool_rating.rating );
} else {
    var score = Math.floor( this.readCookie('ghostpool_rating_score_' + ghostpool_rating.post_id) );
}

Find

var score = Math.floor((((((offset / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100) * 10)) / 10;

Replace with:

var score = Math.floor((((offset / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100);

Find:

score = (Math.floor(((((((e.offsetX + 4) / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100) * 10)) / 10), 

Replace with:

score = (Math.floor((((e.offsetX + 4) / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100),

Find:

var offset = e.offsetX + 4;

Replace with:

var offset = ( Math.round( ( e.offsetX + 4 ) / 24 ) * 24 );

Find:

var position = ghostpool_rating.position;

Replace with:

var position = Math.round( ghostpool_rating.position / 24 ) * 24;

Find:

position = e.offsetX + 4;

Replace with:

position = Math.round( ( e.offsetX + 4 ) / 24 ) * 24;

65. Adding custom post/page options

To add your own option fields below posts/pages add the following to your child theme's functions.php file:

function ghostpool_custom_meta_boxes( $settings ) {
    
    $custom = array(
                        
        array( 
            'id' => 'gp_setting_id_2',
            'title' => esc_html__( 'Setting Name 1', 'ghostpool-core' ),
            'type' => 'text',
            'desc' => esc_html__( 'Description text 2.', 'ghostpool-core' ),
        ),
        array( 
            'id' => 'gp_setting_id_1',
            'title' => esc_html__( 'Setting Name 2', 'ghostpool-core' ),
            'type' => 'select',
            'desc' => esc_html__( 'Description text 2.', 'ghostpool-core' ),
            'options' => array(
                'option_1' => esc_html__( 'Option 1', 'ghostpool-core' ),
                'option_2' => esc_html__( 'Option 2', 'ghostpool-core' ),
                'option_3' => esc_html__( 'Option 3', 'ghostpool-core' ),
             ),
        ),
    
    );  
  
    $settings[] = array(
        'id' => 'gp-custom-settings',
        'title' => esc_html__( 'Custom Settings', 'aardvark' ),
        'post_types' => array( 'all' ),
        'exclude_post_types' => array( 'elementor_library', 'gp_theme_template' ),
        'position' => 'normal',
        'priority' => 'high',
        'section' => $custom
    );
    return $settings;
}
add_filter( 'ghostpool_metaboxes_settings', 'ghostpool_custom_meta_boxes' );

Replacing "gp_setting_id_1" and gp_setting_id_2 with your own IDs. Also change the title, field type and desc for each settings.

66. Removing the copyright text from Youzify Panel

To remove the "Designed & Developed By KAINELABS.COM" text go to Youzify > Profile Settings and disable Enable Account Copyright.

67. I can see shortcodes in my excerpts - how do I use custom excerpts?

Excerpts do not support shortcodes or HTML, they just display unformatted text. By default excerpts will strip all the HTML tags but you'll see raw shortcodes so you'll need to use custom excerpts to remove these. To do this edit the desired post or page, click the Screen Options button in the top right corner and check Excerpt. Now scroll down to Excerpt panel to add your custom excerpt.

68. How do I show the back to top button on mobile/tablet devices?

Go to Theme Options > Styling and in the CSS Code box add :

@media only screen and (max-width: 1023px) {
    .gp-theme #gp-to-top {
    display: block !important;
    opacity: 0.7 !important;
    }
}

69. How do I change the colour and opacity of the dark gradients?

You can use CSS to override the default colour and opacity. Go to Theme Options > Styling and in the CSS Code box add:

.gp-top-bg-gradient-overlay {
background: -moz-linear-gradient(top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.95)), color-stop(100%,rgba(0,0,0,0)));
background: -webkit-linear-gradient(top, rgba(0,0,0,0.95) 0%,rgba(0,0,0,0) 100%);
background: -o-linear-gradient(top, rgba(0,0,0,0.95) 0%,rgba(0,0,0,0) 100%);
background: -ms-linear-gradient(top, rgba(0,0,0,0.95) 0%,rgba(0,0,0,0) 100%);
background: linear-gradient(to bottom, rgba(0,0,0,0.95) 0%,rgba(0,0,0,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2000000', endColorstr='#00000000',GradientType=0 );
}

.gp-bottom-bg-gradient-overlay {
background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.3)));
background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.3) 100%);
background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.3) 100%);
background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.3) 100%);
background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.3) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#99000000',GradientType=0 );
}

.gp-side-bg-gradient-overlay {
background: -moz-linear-gradient(left,  rgba(0,0,0,1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 80%, rgba(0,0,0,1) 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(0,0,0,1)), color-stop(20%,rgba(0,0,0,0)), color-stop(80%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,1)));
background: -webkit-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 80%,rgba(0,0,0,1) 100%);
background: -o-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 80%,rgba(0,0,0,1) 100%);
background: -ms-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 80%,rgba(0,0,0,1) 100%);
background: linear-gradient(to right,  rgba(0,0,0,1) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 80%,rgba(0,0,0,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#000000', endColorstr='#000000',GradientType=1 );
}

.gp-bg-overlay-dark {
background: rgba(0,0,0,0.8);
}

.gp-bg-overlay-light {
background: rgba(0,0,0,0.5);
}

70. Users can't see activity when Youzify is activated

If you're using the Youzify plugin go to Youzify > General Settings > Wall Settings and disable the Privacy setting.

71. How do I change the size of the WooCommerce images

Go to WooCommerce -> Settings -> Products and scroll down to "Product Image Sizes" and edit the cropping dimensions. After changing these settings you will need to regenerate your thumbnails by running the Regenerate Thumbnails plugin: http://wordpress.org/extend/plugins/regenerate-thumbnails

72. How can I remove the decimal points from my ratings?

To remove the decimal points from your ratings open lib/inc/ratings.php and find each occurrence of number_format and change the 1 within the brackets to 0, so for example this:

number_format( $GLOBALS['ghostpool_site_rating'], 1 ) 

Becomes:

number_format( $GLOBALS['ghostpool_site_rating'], 0 ) 

You will also need to make this change to The Review Plugin. The file is located at wp-content/plugins/the-review-plugin/shortcodes/gp_vc_hub_details.php.

Next open lib/scripts/user-ratings.js and find:

if ( ghostpool_rating.rating != '' ) {
    var score = ghostpool_rating.rating;
} else {
    var score = this.readCookie('ghostpool_rating_score_' + ghostpool_rating.post_id);
}

Replace with:

if ( ghostpool_rating.rating != '' ) {
    var score = Math.floor( ghostpool_rating.rating );
} else {
    var score = Math.floor( this.readCookie('ghostpool_rating_score_' + ghostpool_rating.post_id) );
}

Find

var score = Math.floor((((((offset / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100) * 10)) / 10;

Replace with:

var score = Math.floor((((offset / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100);

Find:

score = (Math.floor(((((((e.offsetX + 4) / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100) * 10)) / 10), 

Replace with:

score = (Math.floor((((e.offsetX + 4) / ghostpool_rating.rating_width) * 100) * ghostpool_rating.rating_number) / 100),

Find:

var offset = e.offsetX + 4;

Replace with:

var offset = ( Math.round( ( e.offsetX + 4 ) / 23.3 ) * 23.3 );

Find:

var position = ghostpool_rating.position;

Replace with:

var position = Math.round( ghostpool_rating.position / 23.3 ) * 23.3;

Find:

position = e.offsetX + 4;

Replace with:

position = Math.round( ( e.offsetX + 4 ) / 23.3 ) * 23.3;

73. Creating BuddyPress Profile Menus

Step 1: Go to Appearance > Menus and create or edit an existing menu.

Step 2: Click the Screen Options tab in the top right corner of the page and make sure the BuddyPress option is checked.

Step 3: Now scroll down the page and you will see a BuddyPress tab where you can add BuddyPress profile links to your selected menu.

74. Why am I not receiving emails?

This is unlikely to be a theme issue and it is most likely server or plugin related. 

To test this, activate the default Twenty Twenty-One theme (don't worry this won't affect your site content). If the issues still occur this means the theme is not causing the issue. Make sure whatever plugin you're using is set up correctly and that you have no typos in your email address.

If your server does not allow emails to be sent out try using the following plugin: 

https://en-gb.wordpress.org/plugins/wp-mail-smtp/

For BuddyPress emails you will also need to add the following to your functions.php file:

add_filter( 'bp_email_use_wp_mail', '__return_true' );

75. How do I change the widget header background color?

Go to Theme Options -> CSS and in the CSS Code box add:

.widget .widgettitle {
background-color: #000;
color: #fff;
margin-top: -20px;
padding-top: 15px;
border-radius: 4px 4px 0px 0px;
}

Replace #000 with the colour code you want to use.

76. Can I import more than one demo on my site?

Yes. You can import more than one demo on your site so you can use different pages and features from each demo. 

However, you can only use one set of theme options on your site. So if you import your first demo, this will import the theme options from that demo, which includes all the site colours, logo and typography. If you import another demo, the theme options from this demo will be used instead for all pages.

Options like page, header and footer layout can be changed on individual pages so these settings can be set to what you want if a demo import changes them for your existing pages.

77. Editing the BuddyPress profile tabs

Please see:

https://rtmedia.io/docs/developers/add-remove-buddypress-tabs/

78. How can I order posts by views daily, weekly or monthly?

In your child theme's functions.php add:

function ghostpool_wpp_postviews( $post_id ) {
    
    // Accuracy:
    //   10  = 1 in 10 visits will update view count. (Recommended for high traffic sites.)
    //   30 = 30% of visits. (Medium traffic websites)
    //   100 = Every visit. Creates many db write operations every request.
    $accuracy = 50;
    if ( function_exists( 'wpp_get_views' ) && ( mt_rand( 0, 100 ) < $accuracy ) ) {
        update_post_meta( $post_id, 'views_total', wpp_get_views( $post_id ) );
        //update_post_meta( $post_id, 'views_daily', wpp_get_views( $post_id, 'daily' )  );
        //update_post_meta( $post_id, 'views_weekly', wpp_get_views( $post_id, 'weekly' ) );
        //update_post_meta( $post_id, 'views_monthly', wpp_get_views( $post_id, 'monthly' ) );
    }
}
function ghostpool_views_meta_key_func() {
    return 'views_weekly'
}
add_filter( 'ghostpool_views_meta_key' ,'ghostpool_views_meta_key_func' );

Uncomment the post meta field you want to use. To store the weekly views of posts use:

function ghostpool_wpp_postviews( $post_id ) {
    // Accuracy:
    //   10  = 1 in 10 visits will update view count. (Recommended for high traffic sites.)
    //   30 = 30% of visits. (Medium traffic websites)
    //   100 = Every visit. Creates many db write operations every request.
    $accuracy = 50;
    if ( function_exists( 'wpp_get_views' ) && ( mt_rand( 0, 100 ) < $accuracy ) ) {
        update_post_meta( $post_id, 'views_total', wpp_get_views( $post_id ) );
        //update_post_meta( $post_id, 'views_daily', wpp_get_views( $post_id, 'daily' )  );
        update_post_meta( $post_id, 'views_weekly', wpp_get_views( $post_id, 'weekly' ) );
        //update_post_meta( $post_id, 'views_monthly', wpp_get_views( $post_id, 'monthly' ) );
    }
}
function ghostpool_views_meta_key_func() {
    return 'views_weekly' // Replace with the field name you want to order by in filters
}
add_filter( 'ghostpool_views_meta_key' ,'ghostpool_views_meta_key_func' );

To update the new views data for each post find:

$accuracy = 50;

Replace with:

$accuracy = 100;

Now when each post is viewed by you or your visitors on the frontend it will update the views data.

You only need to do this step once. When you are done change the $accuracy value again.


79. I can't see my members in my Members Directory?

If you are using the PMPro BuddyPress Addon this hides all users from the members directory unless they are assigned to paying membership level. 

To fix this issue do the following:

Step 1: Go to Memberships > PMPro BuddyPress and find the Unlock BuddyPress? option and select "Yes - Give non-member users access to specific features". 

Step 2: Now scroll down to the Include in Member Directory option and select "Yes".

Step 3: You can now set the Unlock BuddyPress? option back to "Yes - Give non-member users access to all of BuddyPress" if you wish.

80. How do I change the order of the hub tabs?

To change the order of the hub tabs edit the menu order option in the Page Attributes panel on each child page. All pages have a value of 0 by default. The lower the number the more to the left the hub tab link will appear.

81. How do I resize Google ads on my site?

Visit the following site which explains how to make your Google ads responsive: http://www.labnol.org/internet/google-adsense-responsive-design/25252

82. I can't see the BuddyPress/bbPress pages?

1) Please ensure you have installed and activated the BuddyPress and bbPress plugins.

2) Go to Settings -> BuddyPress and click the Components tabs and enable "User Groups" and any other features you want to use.

3) Next click the Pages tab and ensure that each dropdown menu has a page selected - if a dropdown menu is empty either create a new page or select an existing page. You do not need to add anything to pages - just leave them empty.

4) If you imported the demo data the links to the BuddyPress pages may need to be edited. Go to Appearance > Menus, find the menu with the BuddyPress links and delete them and replace them with the correct pages.

83. How do I centre the logo and/or navigation?

Go to Theme Options > CSS Settings and add:

#header {
text-align: center;
}

#logo {
float: none;
}

#nav {
float: none;
position: static;
display: inline-block;
margin-top: 30px;
text-align: left;
}

#bp-buttons {
position: absolute;
top: 20px;
right: 20px;
width: auto !important;
}

 

84. Enabling the "BuddyPress Legacy" Template Pack

This theme requires that you enable the BuddyPress Legacy template pack. To do this go to Settings > BuddyPress > Options and from the Template Pack dropdown menu select "BuddyPress Legacy" and click Save Settings.

85. My site is running slow, what can I do?

Before blaming the theme there are a number of things that may be causing your site to slow down. 

First ask yourself, does this issue occur when you are using any other theme? If it does, then it's probably a server or plugin issue. If it's a plugin issue, disable all plugins and reactivate them one by one to find which one(s) are causing the slow down. If it's a server problem then you should contact your web host.


If this issue only occurs when using this theme there are a number of things you can do to improve the pagespeed, as follows:

Install a cache

This is an absolute must. If you're not already using a caching plugin and you're complaining about page speed install a caching plugin immediately! I recommend WP Super Cache or W3 Total Cache.

Optimize images

Optimizing your images reduces their file size without losing picture quality. You can either use a program that does this before uploading your images to your server (such as ImageOptim for the Mac) or you can use a WordPress plugin that does this after uploading your images.

Minify JavaScript and CSS files

Minifying your JavaScript and CSS files basically makes these files as small as possible so they load quicker. There are plenty of plugins out there that minify these files, I recommend Better WordPress Minify.

Remove Query Strings from Static Resources

Use the following Remove Query Strings From Static Resources plugin to remove query strings from static resources like CSS & JS files, to improve your speed scores in services like PageSpeed, YSlow, Pingdom and GTmetrix. Resources with a “?” or “&” in the URL are not cached by some proxy caching servers, and moving the query string and encode the parameters into the URL will increase your WordPress site performance.

Use a VPS or dedicated server

If you are hosted on a shared server you should really consider moving to a VPS or dedicated server. A shared server distributes the server resources across many sites leading to a noticeable slow down when sites on the server have a lot of visitors. If your own site is getting a decent number of visitors you should definitely not be using a shared server. With VPS and dedicated servers you have your own server resources that are not used by any other sites.

Use a CDN to load media, CSS and JavaScript files

A Content Delivery Network (CDN) works by providing alternative server nodes for users to download your files. These nodes are spread throughout the world, therefore being geographically closer to your users, ensuring a faster response and download time of content due to reduced latency. Some of the most popular CDNs are Amazon S3, Microsoft Windows Azure and MaxCDN.

For Gauge users also check out the following video from a fellow buyer:



If you're hosted on a VPS/dedicated server, installed a cache, optimized your images and minified your files and still experience page speed issues then I will need some more information from you in order to determine the cause of this issue.

1) Run your site through http://tools.pingdom.com/ and provide me with the link to the results page.

2) Provide me with WordPress admin access (URL, username and password).

86. I get an error of type E_ERROR from class-tgm-plugin-activation.php

You are getting this error because both your theme and the plugin are loading the TGM plugin class. It looks like the theme you are using is not checking if this class has already been loaded.

Add the following to your child theme's functions.php file so you only load the theme's version:

add_filter( 'gpur_load_tgm_class', '__return_false' );

87. How do I modify X and Y on my BuddyPress pages?

Most BuddyPress page templates can be modified by adding the directory structure and file within your theme folder to override the default styling as explained here: https://codex.buddypress.org/themes/theme-compatibility-1-7/template-hierarchy/

However beyond this since BuddyPress is a third party plugin and is not part of the theme you should contact BuddyPress support at http://buddypress.org/support where they will be able to help you with modifying BuddyPresss templates.

While the theme completely supports BuddyPress, and even has customized BuddyPress elements, support does not cover customisations (click here for the support policy), this both includes customising the theme and third party plugins.

88. Issues with Redux metaboxes extension on WordPress.com server

If you are using this theme on a WordPress.com server instead of a WordPress.org self hosted installation the Redux metaboxes extension generates the wrong URLs. To fix this add the following to your child theme's functions.php file:

function ghostpool_metaboxes_css_extension_url() {
    return get_template_directory_uri() . '/lib/framework/extensions/metaboxes/extension_metaboxes.css';
}
add_filter( "redux/metaboxes/OPTION/enqueue/redux-extension-metaboxes-css", 'ghostpool_metaboxes_css_extension_url' );
function ghostpool_metaboxes_js_extension_url() {
    return get_template_directory_uri() . '/lib/framework/extensions/metaboxes/extension_metaboxes.min.js';
}
add_filter( "redux/metaboxes/OPTION/enqueue/redux-extension-metaboxes-js", 'ghostpool_metaboxes_js_extension_url' ); 

Replacing OPTION with the following depending on the theme you are using:

Socialize: "socialize"

Huber: "ghostpool_huber"

Gauge: "gp"

89. How do I add/remove widgets and Visual Composer elements to the sidebar?

1) If you don't want to display Visual Composer elements in your sidebar go to Appearance > Sidebars Editor select the desired sidebars and click the green "Override widgets" button so it turns grey. This is essential if you're just adding normal widgets and can't see them in your sidebar/footer areas.

2) If you want to display only Visual Composer elements in your sidebar go to Appearance > Sidebars Editor select the desired sidebars and click the green "Override widgets" button so it turns green if it's not already enabled.

3) If you want to display both Visual Composer elements and ordinary widgets in your sidebar go to Appearance > Sidebars Editor select the desired sidebars and click the green "Override widgets" button so it turns green if it's not already enabled. Set the Override behavior to "Place before existing widgets".

90. Pagination is not working on my posts

If you've added an element on a post to display some items and click the page numbers or load more button the same items may be loaded. This is because some servers do not accept the standard pagination URL structures on posts (it should be fine on pages). If this is the case activate the child theme and add the following to the functions.php file:

function ghostpool_custom_pagenum_link( $link ) {
    if ( is_single() ) { 
        return preg_replace( '~/page/(\d+)/?~', '?page=\1', $link );
    } else {
        return $link;     }
}
add_filter( 'get_pagenum_link', 'ghostpool_custom_pagenum_link' );

91. How do I add new fonts to theme options backend?

To add custom fonts to the Theme Options typography options you can do the following:

Step 1: Upload your fonts with the format (.ttf, .otf, .woff, .eot, .woff2) to your child theme in the directory wp-content/themes/child-theme-name/fonts/

Step 2: Create a new file called fonts.css and upload it to wp-content/themes/child-theme-name/fonts. Add the following code to this file:

@font-face {
font-family: 'MyWebFont';
font-style: normal;
font-weight: 500;
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
url('webfont.ttf') format('truetype'); /* Safari, Android, iOS */
}

You need to change "MyWebFont" to the font name you want to add.

Step 3: Edit the file field_typography.php located in the directory wp-content/themes/theme-name/lib/framework/redux/inc/fields/typography/.

Add this code after the line 39:

'MyWebFont' => "My Web Font",

Step 4: Next find the first occurrence of:

if ( isset( $this->field['all_styles'] ) && ! empty( $this->field['all_styles'] ) ) {

Above this add:

$this->field['ext-font-css'] = get_stylesheet_directory_uri() . 'fonts/fonts.css';

Step 5: Finally, in your child theme functions.php file add:

if ( ! function_exists( 'ghostpool_enqueue_custom_fonts' ) ) {
    function ghostpool_enqueue_custom_fonts() {
        wp_enqueue_style( 'gp-redux-custom-fonts', get_stylesheet_directory_uri().'/fonts/fonts.css');
    }
}
add_action( 'wp_enqueue_scripts', 'ghostpool_enqueue_custom_fonts' );

92. Increasing Maximum Input Vars

Maximum input vars limit the number of input variables which affect menus and theme options in the Aardvark theme. To increase the Maximum input vars do the following:

Method 1: Increasing Max Input Vars In .htaccess File

Step 1: Locate the .htaccess file inside the root of your WordPress installation (located in the same folder as your /wp-content/ and /wp-admin/ directories) using an FTP client or file manager in your web hosting control panel (if you can’t find it see why you can’t find the .htaccess file and how to find it or if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in .htaccess file:

php_value max_input_vars 1000
php_value suhosin.get.max_vars 1000
php_value suhosin.post.max_vars 1000
php_value suhosin.request.max_vars 1000

Step 3: Now save the file.

Method 2: Increasing Max Input Vars In php.ini File

Step 1: Locate the php.ini file inside the /wp-admin directory using an FTP client or file manager in your web hosting control panel (if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in  your .php.ini file:

max_input_vars = 1000
suhosin.get.max_vars = 1000
suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000

Step 3: Now save the file.

Step 4: If you still have issues, look for this file in your root directory and make the same changes.

93. Experiencing issues after updating from Youzer to Youzify

After updating Youzer to Youzify if you're experiencing issues make sure you are using Aardvark version 4.34 or higher. 

Once you're running this version, make sure you update to the latest version of the Aardvark Plugin from Appearance > Install Plugins.

To upgrade to Youzify please follow the steps provided by the Youzify support team here: https://kainelabs.ticksy.com/article/16887/ (note steps 11 and 12 are not relevant and have already been done by the theme update).

If you still have issues, for example you're unable to see the upgrade option, you can open a support ticket at https://kainelabs.ticksy.com/ where the Youzify support team will answer your questions. Sign in with your Envato login details and open a ticket in the "Youzify Upgrade Issues category".

94. I cannot see the icons on my site?

This is probably because of a permission issues with the font used to display the icons. Using an FTP client set lib/fonts/ and lib/fonts/fontawesome/ permissions to 755 and the font file permissions to 644.

95. How do I find my ThemeForest Item Purchase Code?

To find your licence key/purchase code you need to log into your ThemeForest account and go to your “Downloads” page.

Locate the relevant theme and click on the Download button and next on the License Certificate & purchase code link in drop-down menu.

After you have downloaded the certificate you can open it in a text editor such as Notepad and copy the Item Purchase Code.


96. How do I display the hub title in the browser on child pages when using WordPress SEO plugin?

If you're using the WordPress SEO plugin it will overwrite the theme settings for how the page title is displayed in the browser. You can adjust the title display from SEO > Titles & Metas.

To add the parent hub title to hub child page go to SEO > Titles & Metas > Post Types and in the Page text box replace the existing code with:

%%parent_title%% %%title%% %%page%% %%sep%% %%sitename%%

97. Can't edit review templates with WPBakery Page Builder

If you're only seeing shortcodes on review templates and can't edit the page with WPBakery Page Builder go to WPBakery Page Builder > Role Manager and from the Post types dropdown menu select "Custom" so you can check the "gpur-template" checkbox.

98. How do I add a Favicon to my site?

This is controlled by WordPress, not the theme. Go to Appearance > Customize > Site Identity > Site Icon.

99. How do I disable the Gutenberg editor?

WordPress 5.0 introduced a new page editor called Gutenberg. Please ensure you have updated to the latest version of the theme and WPBakery Page Builder. To do this refer to your theme documentation.

Once you've done this you should see a blue WPBakery Page Builder button at the very top of your page. Clicking this disables the Gutenberg editor for this page so you can use the WPB page builder. 

You can disable the Gutenberg editor permanently from WPBakery Page Builder > General Settings > Disable Gutenberg Editor


100. How do I redirect back to the pages list after using the Automatic Hub Creation form?

Open lib/inc/auto-hub-pages.php and find:

wp_redirect( get_permalink( $hub_page_id ) );

Replace with:

wp_redirect( admin_url( '/edit.php?post_type=page' ) );

101. I can't login because it says "Incorrect Captcha"?

This is because you have activated the Google Captcha plugin but not set it up. If you don't want to use a captcha on the login form, go to Plugins > Installed Plugins and deactivated the Google Captcha plugin. 

If you do want to use this plugin, you'll need to set it up. Go to Google Captcha > Settings and click the Get the API Keys link to generate a site and secret key which you need to add to the plugin.

102. How do I change the page the login form redirects to?

In your child theme's functions.php file add:

function gp_login_redirect( $gp_redirect ) {    
    $gp_redirect_link = '';    
    $gp_redirect = '<script data-cfasync="false" type="text/javascript">window.location.replace("' . $gp_redirect_link . '");</script>';    
    return $gp_redirect;
}
add_filter( 'gp_redirect_filter', 'gp_login_redirect', 10, 2 );

Where $gp_redirect contains the redirect link. So to redirect to your BuddyPress profile page use:

function gp_login_redirect( $gp_redirect, $gp_user_data ) {    
    $gp_redirect_link = bp_core_get_user_domain( $gp_user_data->ID );    
    $gp_redirect = '<script data-cfasync="false" type="text/javascript">window.location.replace("' . $gp_redirect_link . '");</script>';    
    return $gp_redirect;
}
add_filter( 'gp_redirect_filter', 'gp_login_redirect', 10, 2 );

For older versions of the theme use:

Open lib/inc/login-settings.php and find:

echo "<script data-cfasync='false' type='text/javascript'>window.location.reload();</script>";

Replace with:

$gp_redirect = '';
echo "<script data-cfasync='false' type='text/javascript'>window.location.replace( '" . $gp_redirect . "' );</script>";

Where $gp_redirect contains the redirect link. So to redirect to your BuddyPress profile page use:

$gp_redirect = bp_core_get_user_domain( $gp_user_data->ID );
echo "<script data-cfasync='false' type='text/javascript'>window.location.replace( '" . $gp_redirect . "');</script>";

103. Translating the months in release dates

In your child theme's functions.php file add the following:

function ghosptool_translate_months( $date ) {
    // Add all months you want translated
    $current_months = array( 'January', 'February', 'March', 'etc' );
    
    // Add all your translated months in same order with their counterparts
    $translated_months = array( 'Enero', 'Febero', 'Marzo', 'etc' );
    
    $translated_date = str_ireplace( $current_months, $translated_months, $date );
    return $translated_date;
}
add_filter( 'ghostpool_post_meta_release_date', 'ghosptool_translate_months' );

104. How can I make the slider transition automatically?

Edit the page containing the slider (probably your homepage) and locate the slider shortcode e.g.

[slider timeout="0" margins="0,0,15,0"]

Change the "timeout" value of 0 to the number of seconds between slide transitions. So for 6 seconds between each slide it would look like this:

[slider timeout="6" margins="0,0,15,0"]

To view all the slider shortcode options see: http://buddywp.wpengine.com/features/shortcodes/#sc-sliders

105. Increasing PHP Memory Limit

To increase the PHP Memory Limit do the following:

Method 1: Increasing Memory Limit In wp-config.php File

Step 1: Locate the wp-config.php file inside the root of your WordPress installation (located in the same folder as your /wp-content/ and /wp-admin/ directories) using an FTP client or file manager in your web hosting control panel (if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in your wp-config.php file just before the line that says “That’s all, stop editing! Happy blogging.”:

define( 'WP_MEMORY_LIMIT', '256M' );

Step 3: Now save the file.

Note: If this solution does not work then this means your web hosting service provider does not allow WordPress to increase PHP memory limit. You will need to ask your web host to increase this limit for you.


Method 2: Increasing Memory Limit In php.in File

Step 1: Locate the php.ini file inside the /wp-admin directory using an FTP client or file manager in your web hosting control panel (if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in  your .php.ini file:

memory_limit 256MB;

Method 3: Increasing Memory Limit In .htaccess File

Step 1: Locate the .htaccess file inside the root of your WordPress installation (located in the same folder as your /wp-content/ and /wp-admin/ directories) using an FTP client or file manager in your web hosting control panel (if you can’t find it see why you can’t find the .htaccess file and how to find it or if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in your .htaccess file:

php_value memory_limit 256M

Step 3: Now save the file.

Note: If you encounter any errors while trying to set the memory limit using these two methods then it means your hosting provider has locked this setting and you will have to contact them to increase this limit.


106. Adding Elementor editor to review templates

Step 1: Go to Elementor > Settings.

Step 2: From the Post Types checkboxes check all the post types you want to show the page builder editor on, including "Review Templates".

Step 3: Click Save Changes.

107. Updating your PHP version

The theme requires at least PHP 7.3 or above because this is what WordPress itself recommends.

Updating Your PHP Version

In most cases you cannot update the PHP version yourself and need to contact your host about this. The upgrade process is easy and should be something your host can do for you without impacting your website or charging you a fee. Here's an email you can send to your hosting company:

Dear host,

I'm running a site on one of your servers and WordPress has listed PHP 7.2 as the recommended version on their requirements page: https://wordpress.org/about/requirements/

Can you please let me know if my hosting supports PHP 7.2 or higher and how I can upgrade?

Looking forward to your reply.

VPS Server

If you have a VPS server, see How to upgrade from PHP 5.

My Host Doesn't Support PHP 5.6

If your host doesn't support PHP 5.6 or higher, you will need to find a host that does. We recommend DreamHost which supports PHP 5.6 or higher. If you contact another host, be sure to ask them which PHP version your website will run on before purchasing.

108. How do I open the affiliate button link in a new window?

In your child theme's functions.php file add:

function ghostpool_affiliate_link_target() {
    return '_blank';
}
add_filter( 'gp_affiliate_link_target', 'ghostpool_affiliate_link_target' );

109. How do I convert a lot of my posts to review pages?

You can use a plugin such as Convert Post Types plugin to convert one post type to another (such as posts to page) in bulk.

110. How do I restrict access to BuddyPress content?

You can use the Paid Membership Pro plugin to create membership levels, charge for access (or make it free) and restrict specific content. 

You'll also need to use the BuddyPress Add On to control access to specific BuddyPress content.

111. Why did you remove this theme?

This theme has been retired and is no longer for sale. If you have an active support license you can still receive support, but you will not be able to renew your support license once it expires.

The reason the theme has been retired is because the ThemeForest sales model has opted for users to pay for support licenses rather than a yearly theme license (like most WordPress theme companies do), this means the sales do not cover the costs of continued development. 

I know this can be frustrating if you have a site using this theme, but this is the same with any theme or product. For example, when you buy an iPhone, after a few years, Apple will discontinue making that product and stop offering support for it so they can focus on their newer products. 

When you buy a theme in particular, you're not buying unlimited updates and life long support, you're buying the product you see there and then and always assume that it can be removed from sale at any time.



What do I do now? 

So if you're using this theme on your website and don't know what to do, here's my recommendations:

The theme itself should be fully compatible with future WordPress updates. Very rarely do minor updates cause theme issues and in most cases major WordPress updates should be fine to. So you should be able to continue to use the theme without any problems for years to come. 

If you do run into compatibility issues or bugs with the theme and no longer have a support license you will need to look for a developer who can fix these issues. I refer people to my developers, OurWebMedia, who you can contact here.

If you're about to use the theme and not sure whether to do so, if you're willing to pay for a developer to help you with any issues then go ahead and use it. Otherwise I would recommend using another theme.

The Review theme is fully compatible with the Gauge and Huber themes that I sell, but these may also be discontinued shortly. However I am working on a new review theme which will have all the features of The Review theme, but may not be fully compatible with it, so you existing reviews may not work with the new theme. This theme will likely to be released within 4-6 months. So you have the option of waiting until this theme is released and using this instead.




I want to continue to use the theme, but need the latest verison?

If you didn't download the latest version before the theme was removed, you can contact me at here (make sure you're logged into the account that purchased the theme) and I'll give you the latest version of the theme.



Can I get a refund?

If you bought the theme within the 6 months I can issue you with a refund. To request a refund please click here.

112. How do I stop my site reloading the fonts with a preload effect?

This is known as async typography. To remove this preloading, in your child functions.php file add:

function ghostpool_custom_async_typography() {    
    return false;
}   
add_filter( 'ghostpool_async_typography', 'ghostpool_custom_async_typography' );

113. I can't save the Theme Options page?

This error occurs because your server limits the amount of data that can be saved at one time. There are two ways to increase this limit:

1) Edit your php.ini file and increase the max_input_vars function to around 3000 e.g.

max_input_vars = 3000;

2) Alternatively edit your .htaccess file (in the root of your WordPress installation) and add:

php_value max_input_vars 3000

If you're not able to do either of these please ask your webhost to do this for you.

114. How do I remove category links from showing up?

Cuckoo, Socialize and Habitat Themes:

Go to Theme Options -> Posts -> Post Categories and add the categories you want to remove to the Exclude Categories box.

Huber Theme:

Go to Theme Options -> General and add the categories you want to remove to the Exclude Post Categories box.

115. I can't change the site title and description on the homepage?

If you're using the homepage imported from the demo data and have Yoast SEO activated then the site title is being pulled from this homepage. Edit the page, scroll down to the Yoast SEO panel and edit the Site Title field.

116. Finding the cause of your issue(s)

To find the cause of the issue(s) please do the following:

1. Update The Theme/Plugins

Ensure you using the latest version of the theme and required plugins. We will not look at any issues if you haven’t updated these. To update the theme and required plugins please refer to the theme documentation.

2. Switch Themes

If updating the theme/plugins didn't fix the issue go to Appearance > Themes and activate the Twenty Twenty-One theme and see if the issue(s) still occur.  If your site has visitors you can use the Theme Test Drive plugin so your users don’t see the theme you’ve switched to.

If the issue(s) still occur this means the theme is not causing the issue and this is probably a general WordPress or plugin issue.

3. Deactivate All Plugins

To see if it is a plugin issue deactivate all activated plugins (except the plugins that are needed to test the issues). If this fixes the issue(s) this means the theme is not the cause. Reactivate the plugins one by one or in groups so you can identify which plugins are responsible.

4. If the theme is responsible

If the issue only occurs when this theme is activated it looks like the theme is responsible. Please provide WordPress admin access and I'll take a closer look.

117. How do I modify the BuddyPress registration fields/template?

Modifying Registration Fields:

BuddyPress provide documentation on how to modify the registration fields here: https://codex.buddypress.org/getting-started/guides/modifying-the-registration-form/

Modifying Registration Templates:

If you're using BuddyPress, then the registration page is being generated by BuddyPress and not the theme. You can add the following directory within your child theme folder /buddypress/members/register.php to override the default registration template.


118. Modifying Youzify BuddyPress pages

If you are using the Youzify plugin it will uses its own page templates and styling options for the BuddyPress pages. Exceptions include the registration and login pages.

If you want to use the theme's BuddyPress page templates and styling options you will either need to disable the Youzify plugin or modify the Youzify page templates.

You can do this by creating a directory called "youzify" inside your child theme folder and placing all the template files you want to change inside that folder (preserving directories structure).

So your directory will look something like this:

"/wp-content/themes/your-theme/youzify/"

Example:

Let’s say you want to customize some text on BuddyPress Members directory page, you will be copying the file index.php which is located here:

"\wp-content\plugins\youzify\includes\public\templates\members\index.php"

to here:

"/wp-content/themes/your-theme/youzify/members/index.php"

You will find all youzify templates on the path "youzify\includes\public\templates\"


119. My page(s) look weird?

This is probably because you have:

<code></code>

Or:

<pre></pre>

tags within your page text boxes. Edit your pages, switch to the Text/HTML tab and remove all occurrences of these tags.

120. I cannot import the demo data

If you cannot import the demo data because it never completes the import process or you receive an error it could be because one of the following reasons:

Recommended PHP Configuration Limits

If the import never completes or you receive an error your PHP configuration limits may be set too low. You should contact your webhost and ask them to increase the following:

You can verify your PHP configuration limits by installing a simple plugin found here.

Manually Import Demo Content

If you still can't import the demo data you can try to manually import the demo content without images. Go to Tools > Import and select the WordPress Importer. Click the "Choose File" button and select the demo file from theme-name/framework/importer/demo-files/content.xml. Now click "Upload file and import". Choose to assign all posts to an existing user and make sure the "Download and import file attachments" is not checked. This means the demo file will not import any images, so you will need to add these to the imported posts and pages manually. Now click Submit.

To import the widgets go to Plugins > Add New and search for "Widget Importer & Exporter" and install and activate the first plugin. Now go to Tools > Widget Importer & Exporter and click the "Choose File" button and select the widget file from theme-name/framework/importer/demo-files/widgets.json. Rename this file to widgets.wie and then click "Import Widgets".

121. How do I change or add new BuddyPress profile icons?

The theme adds icons to the profile menu navigation tabs. However if you're using a plugin to add new profile tabs or want to change the existing icons you can do this using CSS. Go to Theme Options > Styling and in the CSS Code box add:

.gp-theme #buddypress #object-nav li a:before {
content: '\f1db';
}
.gp-theme #buddypress #object-nav #activity-personal-li a:before {
content: '\f03a';
}
.gp-theme #buddypress #object-nav #xprofile-personal-li a:before,
.gp-theme.gp-fontawesome5 #buddypress #object-nav #xprofile-personal-li a:before {
content: '\f2c0';
}
.gp-theme #buddypress #object-nav #blog-personal-li a:before,
.gp-theme #buddypress #object-nav #blogs-personal-li a:before {
content: '\f0e8';
}
.gp-theme #buddypress #object-nav #events-personal-li a:before {
content: '\f073';
}
.gp-theme #buddypress #object-nav #notifications-personal-li a:before,
.gp-theme.gp-fontawesome5 #buddypress #object-nav #notifications-personal-li a:before {
content: '\f0a2';
}
.gp-theme #buddypress #object-nav #messages-personal-li a:before,
.gp-theme.gp-fontawesome5 #buddypress #object-nav #messages-personal-li a:before {
content: '\f003';
}
.gp-theme #buddypress #object-nav #friends-personal-li a:before {
content: '\f234';
}
.gp-theme #buddypress #object-nav #groups-personal-li a:before {
content: '\f0c0';
}
.gp-theme #buddypress #object-nav #nav-forum-groups-li a:before,
.gp-theme #buddypress #object-nav #forums-personal-li a:before {
content: '\f27a';
}
.gp-theme #buddypress #object-nav #media-personal-li a:before {
content: '\f008';
}
.gp-theme #buddypress #object-nav #settings-personal-li a:before {
content: '\f013';
}
.gp-theme #buddypress #object-nav #home-groups-li a:before {
content: '\f015';
}
.gp-theme #buddypress #object-nav #members-groups-li a:before,
.gp-theme.gp-fontawesome5 #buddypress #object-nav #members-groups-li a:before {
content: '\f2c0';
}
.gp-theme #buddypress #object-nav #invite-groups-li a:before {
content: '\f0c0';
}
.gp-theme #buddypress #object-nav #media-groups-li a:before {
content: '\f008';
}
.gp-theme #buddypress #object-nav #admin-groups-li a:before {
content: '\f013';
}
.gp-theme #buddypress #object-nav #courses-personal-li a:before,
.gp-theme #buddypress #object-nav #nav-experiences-groups-li a:before {
content: '\f19d';
}

This code controls all the existing tabs. You can replace each icon code above with one of the icon codes here.

If you want to add icons to new tabs you need to use your browser inspector to right click on the icon, select Inspect/Inspect Element and find the ID of the tag.

And then add this ID to your CSS code.

.gp-theme #buddypress #object-nav #groups-personal-li a:before {
content: '\f03a';
}


122. CDN images are not working on my site?

The theme uses the Aqua Resizer script to resize/crop images to the selected size, this script only accepts images hosted on the same server as the site so CDN images will not work.

In order to support CDN images you will need to disable the cropping functionality. This is not an elegant solution as this will mean the full size images are loaded in all cases but at least your images will be working. To do this copy the following function to your child theme's functions.php file:

Replace "http://cdnurl.com/wp-content/uploads" with your CDN uploads directory.

class Aq_Exception extends Exception {}
class Aq_Resize
{
    /**
     * The singleton instance
     */
    static private $instance = null;
    /**
     * Should an Aq_Exception be thrown on error?
     * If false (default), then the error will just be logged.
     */
    public $throwOnError = false;
    /**
     * No initialization allowed
     */
    private function __construct() {}
    /**
     * No cloning allowed
     */
    private function __clone() {}
    /**
     * For your custom default usage you may want to initialize an Aq_Resize object by yourself and then have own defaults
     */
    static public function getInstance() {
        if(self::$instance == null) {
            self::$instance = new self;
        }
        return self::$instance;
    }
    /**
     * Run, forest.
     */
    public function process( $url, $width = null, $height = null, $crop = null, $single = true, $upscale = false ) {
        try {
            // Validate inputs.
            if (!$url)
                throw new Aq_Exception('$url parameter is required');
            if (!$width && !$height)
                throw new Aq_Exception('$width and $height parameter are required'); // MODIFIED
            // Caipt'n, ready to hook.
            if ( true === $upscale ) add_filter( 'image_resize_dimensions', array($this, 'aq_upscale'), 10, 6 );
            // Define upload path & dir.
            $upload_info = wp_upload_dir();
            $upload_dir = $upload_info['basedir'];
            $upload_url = 'http://cdnurl.com/wp-content/uploads';
            
            $http_prefix = "http://";
            $https_prefix = "https://";
            $relative_prefix = "//"; // The protocol-relative URL
            
            /* if the $url scheme differs from $upload_url scheme, make them match 
               if the schemes differe, images don't show up. */
            if(!strncmp($url,$https_prefix,strlen($https_prefix))){ //if url begins with https:// make $upload_url begin with https:// as well
                $upload_url = str_replace($http_prefix,$https_prefix,$upload_url);
            }
            elseif(!strncmp($url,$http_prefix,strlen($http_prefix))){ //if url begins with http:// make $upload_url begin with http:// as well
                $upload_url = str_replace($https_prefix,$http_prefix,$upload_url);      
            }
            elseif(!strncmp($url,$relative_prefix,strlen($relative_prefix))){ //if url begins with // make $upload_url begin with // as well
                $upload_url = str_replace(array( 0 => "$http_prefix", 1 => "$https_prefix"),$relative_prefix,$upload_url);
            }
            
            // Check if $img_url is local.
            if ( false === strpos( $url, $upload_url ) )
                throw new Aq_Exception('Image must be local: ' . $url);
            // Define path of image.
            $rel_path = str_replace( $upload_url, '', $url );
            $img_path = $upload_dir . $rel_path;
            // Check if img path exists, and is an image indeed.
            if ( ! file_exists( $img_path ) or ! getimagesize( $img_path ) )
                throw new Aq_Exception('Image file does not exist (or is not an image): ' . $img_path);
            // Get image info.
            $info = pathinfo( $img_path );
            $ext = $info['extension'];
            list( $orig_w, $orig_h ) = getimagesize( $img_path );
            // Get image size after cropping.
            $dims = image_resize_dimensions( $orig_w, $orig_h, $width, $height, $crop );
            $dst_w = $dims[4];
            $dst_h = $dims[5];
            // Return the original image only if it exactly fits the needed measures.
            if ( ! $dims && ( ( ( null === $height && $orig_w == $width ) xor ( null === $width && $orig_h == $height ) ) xor ( $height == $orig_h && $width == $orig_w ) ) ) {
                $img_url = $url;
                $dst_w = $orig_w;
                $dst_h = $orig_h;
            } else {
                // Use this to check if cropped image already exists, so we can return that instead.
                $suffix = "{$dst_w}x{$dst_h}";
                $dst_rel_path = str_replace( '.' . $ext, '', $rel_path );
                $destfilename = "{$upload_dir}{$dst_rel_path}-{$suffix}.{$ext}";
                if ( ! $dims || ( true == $crop && false == $upscale && ( $dst_w < $width || $dst_h < $height ) ) ) {
                    // Can't resize, so return false saying that the action to do could not be processed as planned.
                    //throw new Aq_Exception('Unable to resize image because image_resize_dimensions() failed');
                    $img_url = $url; // MODIFIED
                }
                // Else check if cache exists.
                elseif ( file_exists( $destfilename ) && getimagesize( $destfilename ) ) {
                    $img_url = "{$upload_url}{$dst_rel_path}.{$ext}";
                }
                // Else, we resize the image and return the new resized image url.
                else {
                    $editor = wp_get_image_editor( $img_path );
                    if ( is_wp_error( $editor ) || is_wp_error( $editor->resize( $width, $height, $crop ) ) ) {
                        throw new Aq_Exception('Unable to get WP_Image_Editor: ' . 
                                               $editor->get_error_message() . ' (is GD or ImageMagick installed?)');
                    }
                    $resized_file = $editor->save();
                    if ( ! is_wp_error( $resized_file ) ) {
                        $resized_rel_path = str_replace( $upload_dir, '', $resized_file['path'] );
                        $img_url = $upload_url . $resized_rel_path;
                    } else {
                        throw new Aq_Exception('Unable to save resized image file: ' . $editor->get_error_message());
                    }
                }
            }
            // Okay, leave the ship.
            if ( true === $upscale ) remove_filter( 'image_resize_dimensions', array( $this, 'aq_upscale' ) );
            // Return the output.
            if ( $single ) {
                // str return.
                $image = $url;
            } else {
                // array return.
                $image = array (
                    0 => $url,
                    1 => $dst_w,
                    2 => $dst_h
                );
            }
            return $image;
        }
        catch (Aq_Exception $ex) {
            error_log('Aq_Resize.process() error: ' . $ex->getMessage());
            if ($this->throwOnError) {
                // Bubble up exception.
                throw $ex;
            }
            else {
                // Return false, so that this patch is backwards-compatible.
                return false;
            }
        }
    }
    /**
     * Callback to overwrite WP computing of thumbnail measures
     */
    function aq_upscale( $default, $orig_w, $orig_h, $dest_w, $dest_h, $crop ) {
        if ( ! $crop ) return null; // Let the wordpress default function handle this.
        // Here is the point we allow to use larger image size than the original one.
        $aspect_ratio = $orig_w / $orig_h;
        $new_w = $dest_w;
        $new_h = $dest_h;
        if ( ! $new_w ) {
            $new_w = intval( $new_h * $aspect_ratio );
        }
        if ( ! $new_h ) {
            $new_h = intval( $new_w / $aspect_ratio );
        }
        $size_ratio = max( $new_w / $orig_w, $new_h / $orig_h );
        $crop_w = round( $new_w / $size_ratio );
        $crop_h = round( $new_h / $size_ratio );
        $s_x = floor( ( $orig_w - $crop_w ) / 2 );
        $s_y = floor( ( $orig_h - $crop_h ) / 2 );
        return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
    }
}

123. How do I set up the bbPress forum like the demo?

The forums seen in the demo site are created using the bbPress plugin. Please install and activate this plugin from Plugins > Add New and search for "bbpress".

Once you've activated the plugin your forums should be located at http://my-domain.com/forums

To set up the forum layout seen in the theme demo you need to create category parents for each group of forums. For example on the demo forum (https://aardvark.ghostpool.com/original/forums/), "Forum Category 1" is a forum category and it has three child forums called "Forum 1", "Forum 2" and "Forum 3".

Go to Forums > New Forum to create a header and on the right hand side select "Category" from the Type dropdown menu.

To create a forum under this header go to Forums > New Forum and on the right hand side select "Forum" from the Type dropdown menu.

This is how the final setup should look:




124. My plugins are automatically inserting content into my sidebar and footer?

This is happening because you have enabled Visual Composer support via the Visual Sidebars Editor plugin, which allows you to insert Visual Composer elements in your sidebar and footer areas. If you don't need to display Visual Composer elements here go to Appearance > Sidebars Editor select the desired sidebars and click the green "Override widgets" button so it turns grey.

 

If you do need to add Visual Composer elements to your sidebar and footer areas you will need to edit the plugin that you are using. 

In the plugin files you need to find the name of the function being used for the_content filter e.g.

add_filter( 'the_content', array( $this, 'custom_function_name' ) );

In this case it is "custom_function_name". Now search for the corresponding function e.g.

function custom_function_name( $content ) {
    if ( is_singular() ) {
        $new_content = '<p>This is added to the bottom of all post and page content, as well as custom post types.</p>';
        $content .= $new_content;    
    }    
    return $content;
}

You need to add an additional check called in_the_loop() so the content is only loaded in the main loop and not the sidebars and footer e.g.

function custom_function_name( $content ) {
    if ( is_singular() && in_the_loop() ) {
        $new_content = '<p>This is added to the bottom of all post and page content, as well as custom post types.</p>';
        $content .= $new_content;    
    }    
    return $content;
}

I suggest speaking with the plugin developers and asking them to make this a permanent change to their plugin as this is a common issue between plugins and themes as discussed at https://pippinsplugins.com/playing-nice-with-the-content-filter/

125. Adding WPBakery Page Builder editor to review templates

Step 1: Go to WPBakery Page Builder > Role Manager.

Step 2: From the Post types dropdown menu select "Custom" and check all the post types you want to show the page builder editor on, including "gpur-template" for review templates.

Step 3: Click Save Changes.

126. How do I remove the latest activity update in the profile header?

If you're trying to remove the latest activity text from your profile header and it doesn't exist in the activity stream you can manually delete it. In your child theme's functions.php file add the following:

delete_user_meta( $user_id, 'bp_latest_update' );

Where $user_id is the ID of the user you want to delete the text for. In most cases the admin account has a user ID of 1 e.g.

delete_user_meta( 1, 'bp_latest_update' );

Remove the code from functions.php when this has been successfully removed.

127. How do I insert advertisements on my site?

To insert advertisements in the header and footer go to the Theme Options page of your theme and locate the header and footer content options (not available on all themes).

To insert advertisements in your sidebar go to Appearance > Widgets and add your ad or image code into the Text Widget.

To insert advertisements within the page content go to Appearance > Sidebars Editor and insert your ad or image code into the Raw JS Visual Composer element (not available on all themes).

You can also use a variety of ad plugins to insert advertisements within your posts/page. The plugin "Wp-Insert" has been tested with this theme.


128. My translations are no longer working since the theme update?

Sorry for the inconvenience, Envato has asked me to move certain features to the theme plugin. This means all the theme options and custom Visual Composer elements have been moved the theme plugin. You can now translate all the text relating to these items from the themename-plugin.pot translation file as explained in the help file:

Socialize: http://ghostpool.com/help/socialize/help.html#61

The Review: http://ghostpool.com/help/gauge/help.html#71

Gauge: http://ghostpool.com/help/thereview/help.html#71

Vivacity: http://ghostpool.com/help/socihttp://ghostpool.com/help/vivacity/help.html#61lize/help.html#61

129. Increasing PHP Maximum Execution Time

To increase the PHP Maximum Execution Time do the following:

Method 1: Editing .htaccess File Manually

Step 1: Locate the .htaccess file inside the root of your WordPress installation (located in the same folder as your /wp-content/ and /wp-admin/ directories) using an FTP client or file manager in your web hosting control panel (if you can’t find it see why you can’t find the .htaccess file and how to find it or if you’re not sure how to do this, ignore the steps below and contact your web host who can do this for you).

Step 2: Paste this code in your .htaccess file:

php_value max_execution_time 180

Step 3: Now save the file.

Note: If you still get the error, try increasing the value to 600.

Method 2: Using A Plugin

Step 1: If you're not able to edit .htaccess file manually, then you can install and activate the WP Maximum Execution Time Exceeded plugin. That’s all. The plugin works out of the box and increases the maximum execution time to 300 seconds.

130. It says the theme is broken or missing a style sheet?

If after installing the theme it says it is broken or the style sheet is missing it's nothing to worry. This is one of the most common errors new users to WordPress experience. To upload the theme correctly do the following:

  1. Go to your ThemeForest Downloads page, locate the theme, click the green Download button and select the Installable WordPress file only option.
  2. Log in to the WordPress Admin Panel.
  3. Go to Appearance > Themes.
  4. Click the Add New button.
  5. Click the Upload Theme button and upload the zip file you just downloaded.

131. I can't update the theme - it says update failed?

You must now use the Envato Market WordPress plugin to update the theme. When you do, sometimes you may see an update failed message. To fix this try the following:

1) Firstly, try clicking the update link again, sometimes it doesn't work first time around.

2) If this doesn't work, activate another theme so this theme becomes deactivated and then try updating the theme.

2) If this doesn't work, check your token has the correct permissions by going to Envato Market > Settings and clicking the Test API Connection button. If you get an error, create a new token. 

3 If it still doesn't work it's possible Envato's API is down and you will need to try again later.

4) If things still don't work, don't worry, just download the theme update your ThemeForest Downloads page, locate the theme, click the green Download button and select the Installable WordPress file only option. Now go to Appearance > Themes and activate another theme so you can deactivate and delete this theme. Finally click the Add New and upload the zip file you just downloaded and activate the theme.

132. How do I set Web Hosting details?

The web hosting details display on the right is generated from custom fields. To add/edit/delete these custom fields on your posts see:

How to add custom fields

Now you can use the following custom field names and set the values to whatever you want to display.


133. I cannot see any related posts?

Related posts are only displayed if posts have one or more of the same post tags as the post you are viewing. To add post tags to posts, on the right-hand side of the post add your tags from the "Tags" panel.

134. I cannot see my posts when I order by views?

This is because the meta keys for each post aren’t added until the view count updates. To do this, open functions.php and find:

$accuracy = 50;

Replace with:

$accuracy = 100;

Now when each post is viewed by you or your visitors on the frontend it will update the views data and show up when ordering by posts.

You only need to do this step once. When you are done change the $accuracy value again.

135. Switching To Tablet and Mobile View in Elementor

In the Elementor editor in the bottom left hand corner click the Responsive Mode icon to change the display from desktop to tablet or mobile.

You can now change the styling for the display you've switched to and access elements that may have been hidden.

Also check out this video on how to use responsive editing in Elementor.


136. How do I add/edit/remove theme options?

There are two types of theme options. You have the global theme options on the Theme Options page and you have the individual options on individual pages.

Global Theme Options

This theme uses the Redux framework for the options interface. Redux provide documentation on adding, editing and removing options or sections here: https://docs.reduxframework.com/core/redux-api/

Adding A Section

Add the following to your child theme's functions.php file:

$opt_name = 'option_name'; // Change this value to the option name, you can find this in functions.php e.g. $gp = get_option( 'option_name' );
$section = array(
    'title'  => 'New Section',
    'id'     => 'new-section',
    'desc'   => '',
    'icon'   => 'el el-home', 
    'fields' => array(
        array(
            'id'       => 'opt-text-example',
            'type'     => 'text',
            'title'    => 'Text Field',
            'subtitle' => 'Subtitle',
            'desc'     => 'Field Description',
            'default'  => 'Default Text',
        ),  
        array(
            'id'       => 'opt-select-example',
            'type'     => 'select',
            'title'    => 'Dropdown Field',
            'subtitle' => 'Subtitle',
            'desc'     => 'Field Description',
            'options'  => array(
                'one' => 'One',
                'two' => 'Two',
                'Three' => 'Three',
            ),
            'default' => 'one',
        ), 
 
    )
);
Redux::setSection( $opt_name, $section );

Replacing $opt_name with the theme's option name - you can find this in functions.php e.g. $gp = get_option( 'option_name' ); where 'option_name' is the the value to use.

To call your custom options in your theme you can use:

$opt_name['opt-text-example'];

Again replacing $opt_name with the theme's option name and replacing 'opt-text-example' with the option ID.

Removing A Section

Add the following to your child theme's functions.php file:

Redux::removeSection( $opt_name, $id, $all_fields );

Replacing $opt_name with the theme's option name and $id with the ID of the option you want to remove. You will find all the option IDs in wp-content/plugins/THEME-plugin/inc/theme-config.php.

You can find a full list of all the ways you can edit the theme options at https://docs.reduxframework.com/core/redux-api/


Individual Page Options

Adding A Section

In this example we're going to add a new options panel to individual pages. Add the following to your child theme's functions.php file:

function ghostpool_redux_metabox_options( $metaboxes ) {
    
    $new_options = array();
    $new_options[] = array(
    
        'fields' => array( 
            array(
                'id'    => 'opt-text-example',
                'type'  => 'text',
                'title' => 'Text Field',
                'desc'  => 'field Description',
            ),
            
            array(
                'id'       => 'opt-select-example',
                'type'     => 'select',
                'title'    => 'Dropdown Field',
                'subtitle' => 'Subtitle',
                'desc'     => 'Field Description',
                'options'  => array(
                    'one' => 'One',
                    'two' => 'Two',
                    'Three' => 'Three',
                ),
                'default' => 'one',
            ),             
                     
        ),        
    );
    $metaboxes[] = array(
        'id' => 'new-options',
        'title' => 'New Options',
        'post_types' => array( 'page' ),
        'position' => 'normal',
        'priority' => 'high',
        'sections' => $new_options,
    );
    return $metaboxes;
}
add_filter( 'gp_redux_metabox_options', 'ghostpool_redux_metabox_options', 2 );

Replacing $new_options and 'new-options' with unique names.

You can add multiple post types to 'post_types' option including your custom post types e.g..

'post_types' => array( 'page', 'post', 'custom_post_type' ),

To call your custom options in your theme you can use:

<?php echo redux_post_meta( 'opt_name', get_the_ID(), 'opt-text-example' ); ?>

Replacing 'opt_name' with the theme's option names and 'opt-text-example' with option ID.

If "redux_post_meta" does not work try this instead:

<?php echo get_post_meta( get_the_ID(), 'opt-text-example', true ); ?>

Editing/Removing A Section

In this example we're going to edit the slide page options by removing several options. Add the following to your child theme's functions.php:

function ghostpool_redux_metabox_options( $metaboxes ) {
    
    $slide_options = array();
    $slide_options[] = array(
        'fields' => array( 
            array(
                'id'    => 'slide_caption_title',
                'type'  => 'text',
                'title' => 'Caption Title',
                'desc'  => 'The caption title for the slide.',
            ),    
                     
        ),        
    );
    $metaboxes[] = array(
        'id' => 'slide-options',
        'title' => 'Slide Options',
        'post_types' => array( 'gp_slide' ),
        'position' => 'normal',
        'priority' => 'high',
        'sections' => $slide_options,
    );
    return $metaboxes;
}
add_filter( 'gp_redux_metabox_options', 'ghostpool_redux_metabox_options', 2 );

Taxonomy Options

Adding An Option

In this example we're going to add a new option to post and portfolio category pages. Add the following to your child theme's functions.php file:

function ghostpool_custom_category_options( $gp_options ) {
    $gp_options[] = array( 
        'id'      => 'custom-option',
        'name'    => 'Custom Option',
        'desc'    => 'Custom option description.',
        'type'    => 'select',
        'tax'     => array( 'category', 'gp_portfolios' ),
        'options' => array(
            'option-1' => 'Option 1', 
            'option-2' => 'Option 2',
        ),
        'default' => 'option-1',
    );
            
    return $gp_options;
    
}
add_filter( 'gp_custom_category_options', 'ghostpool_custom_category_options' );

You can specify what taxonomies your options are shown on by changing the 'tax' option  e.g.

'tax' => array( 'category', 'post_tag', 'gp_portfolios', 'gp_hubs', 'gp_videos' ),

137. Ordering posts by views

If ordering posts by views the theme will order by daily views but you can also order by weekly, monthly and all time views. To do this activate the Magzine Child theme and in the child theme's functions.php file add:

function ghostpool_custom_views_order() {
    return 'views_weekly';
}
add_filter( 'ghostpool_most_views_meta_key', 'ghostpool_custom_views_order' );
add_filter( 'ghostpool_least_views_meta_key', 'ghostpool_custom_views_order' );

You can use: views_total, views_monthly views_weekly, views_daily

138. My site crashes when I try to create a new post/page?

The "Hub Association" and "Custom Tab" options on posts and pages try to query every hub on your site so you can easily select them from the dropdown menu. If you have a huge amount of these hubs this may exceed your server's memory limit or maximum execution time. You can increase the memory limit as explained here and you can increase the maximum execution time using this plugin.

If this doesn't resolve the issue you can convert the drop down menus to ordinary text boxes where you manually enter the hubs IDs. To do this add the following code to your child theme's functions.php file:

// Hub Association Option
function ghostpool_change_hub_association_option_type() {
    return array(
        'id'      => 'hub_association_ids',
        'type'    => 'text',
        'title'   => esc_html__( 'Hub Association', 'huber' ),
        'desc' => esc_html__( 'Enter the hub IDs separating each one with a comma between quotation marks e.g. "405","32","21". This post will then display under the Reviews, News or Videos tab on the selected hubs.', 'huber' ),
        'default' => '',
    );                    
}
// Custom Tab Option
function ghostpool_custom_hub_tab_option_type() {
    return array(
        'id'      => 'custom_hub_tab_ids',
        'type'    => 'text',
        'title'   => esc_html__( 'Custom Tab', 'huber' ),
        'desc' => esc_html__( 'Make this page a hub tab by entering the hub IDs separating each one with a comma between quotation marks e.g. "405","32","21".', 'huber' ),
        'default' => '',
    );                    
}

If you already have been using these options as drop down menus you will need to convert your existing values to comma separated values between quotation marks. To do this add the following to your child theme's functions.php file. This converts 200 posts at a time, you can increase this number to change more posts at once:

if ( get_option( 'huber_converted_hub_association_option' ) != '1' ) {
    $args = array(
        'post_type' => array( 'post', 'page' ),
        'post_status' => array( 'publish', 'future' ), 
        'meta_key' => 'hub_association_ids',
        'posts_per_page' => '200', 
        'orderby' => 'date', 
        'order' => 'desc',
        'no_found_rows'  => true,
        'cache_results' => false,
        'update_post_meta_cache' => false,
        'update_post_term_cache' => false,
    );
    $posts = get_posts( $args );
    if ( ! empty ( $posts ) ) {
        foreach ( $posts as $post ) {            
            if ( get_post_meta( $post->ID, 'hub_association_ids', true ) && is_array( get_post_meta( $post->ID, 'hub_association_ids', true ) ) ) {
                $array = '';
                $values = ( get_post_meta( $post->ID, 'hub_association_ids', true ) );
                foreach ( $values as $value ) {        
                    $array[] = $value;
                }
                $string = '"' . implode( '", "', $array ) . '"';
                update_post_meta( $post->ID, 'hub_association_ids', $string );
            }
        }
    } else {
        update_option( 'huber_converted_hub_association_option', '1' );
    }
    
}
if ( get_option( 'huber_converted_custom_hub_tab_option' ) != '1' ) {
    $args = array(
        'post_type' => array( 'post', 'page' ),
        'post_status' => array( 'publish', 'future' ), 
        'meta_key' => 'custom_hub_tab_ids',
        'posts_per_page' => '200', 
        'orderby' => 'date', 
        'order' => 'desc',
        'no_found_rows'  => true,
        'cache_results' => false,
        'update_post_meta_cache' => false,
        'update_post_term_cache' => false,
    );
    $posts = get_posts( $args );
    if ( ! empty ( $posts ) ) {
        foreach ( $posts as $post ) {            
            if ( get_post_meta( $post->ID, 'custom_hub_tab_ids', true ) && is_array( get_post_meta( $post->ID, 'custom_hub_tab_ids', true ) ) ) {
                $array = '';
                $values = ( get_post_meta( $post->ID, 'custom_hub_tab_ids', true ) );
                foreach ( $values as $value ) {        
                    $array[] = $value;
                }
                $string = '"' . implode( '", "', $array ) . '"';
                update_post_meta( $post->ID, 'custom_hub_tab_ids', $string );
            }
        }
    } else {
        update_option( 'huber_converted_custom_hub_tab_option', '1' );
    }
    
}

139. Using comment plugins such as Disqus

If you're using a plugin that modifies the comment section such as Disqus you will need to disable the theme's own comment template. To do this add the following to your child theme's functions.php file:

remove_filter( 'comments_template', 'ghostpool_load_comment_template' );

140. Can a user delete their user rating?

The theme does not support this feature by default so you'll need to installed the User Meta Manager plugin. Once you have installed and activated the plugin go to Users > User Meta Manager, find the desired user, click Delete Meta and delete the _gp_rated_*, gp_current_position_* and _gp_user_rating_* meta data for that user. The user will also need to delete their cookies for the site so they can vote again.

141. How do I create BuddyPress groups?

I'm not sure why I get this question so often as creating groups has nothing to do with the theme, it's part of the BuddyPress plugin. However since I'm always asked please check the following:

1) Go to Settings > BuddyPress and under the Components tab make sure User Groups is enabled.

2) Go to Settings > BuddyPress and under the Pages tab make sure a page is selected from the User Groups drop down menu.

3) To add a link to this page go to Appearance > Menus and add this page to one of your menus.

4) If you can't create user groups from the frontend, go to Settings > BuddyPress and under the Settings tab enable Group Creation if you want to allow all users to create groups. If you still can't create groups deactivate all plugins (except BuddyPress) to see if this resolves the issue. If it does, reactivate the plugins one by one to fix the problem plugin.

If no plugin is causing the issue activate the Twenty Seventeen theme, if this doesn't resolve the issue, the theme is not causing this problem and you will need to contact BuddyPress support who will be able help you.


142. How do I show inactive members in my BuddyPress members directory?

For current members:

BuddyPress will only show users in the members directory if they have  logged into to their account. You can get around this and activate all user accounts by installing and activating the Retroactive BP User Activity plugin.

If this doesn't work add the following to your child theme functions.php file:

update_metadata( 'user', '', 'last_activity', date( 'Y-m-d H:i:s' ) );

Remove this code once it has updated the last activity date for all members (when all members are shown on your members page).

For new members that register:

To automatically update new members in the members directory add the following to your child theme functions.php file:

function ghostpool_show_all_bp_members( $user_id ) {
    add_user_meta( $user_id, 'last_activity', date( 'Y-m-d H:i:s' ) );
}
add_action( 'bp_core_activated_user', 'ghostpool_show_all_bp_members' );


143. Adding different menus to different pages

Step 1: In your child theme's functions.php file register your new menu items by adding the following:

function ghostpool_register_new_menus() {
    register_nav_menus( array(
        'gp-new-menu-1' => esc_html__( 'New Menu 1', 'aardvark' ),
        'gp-new-menu-2' => esc_html__( 'New Menu 2', 'aardvark' ),
    ) );
        
}
add_action( 'after_setup_theme', 'ghostpool_register_new_menus' );

This create two new menu areas.

Step 2: Now you need to tell the theme to use these menus on specific pages by adding the following to functions.php:

function ghostpool_custom_main_header_primary_nav() {
    $menu = '';
    
    if ( is_page( 123 ) ) {
    
        $menu = 'gp-new-menu-1';
        
    } elseif ( is_page( 456 ) ) {
        $menu = 'gp-new-menu-2';
    
    } else {
        $menu = 'gp-main-header-primary-nav';
    }
                
    return $menu;
}
add_filter( 'ghostpool_main_header_primary_nav', 'ghostpool_custom_main_header_primary_nav' );

This tells the theme to replace the main header primary menu with the menu "gp-new-menu-1" on the page with ID 123 and "gp-new-menu-2" on the page with ID 456. On all other pages it uses the original menu "gp-main-header-primary-nav".

You can do this for any of the theme menus using this method, just replace the filter name in step 2 with the following names:


144. How do I add/remove breadcrumbs?

The breadcrumbs shown in the demo are added by the Yoast WordPress SEO plugin. Install this plugin and then go to SEO -> Search Appearance and click the Breadcrumbs tab and click Enabled.

145. Changing the hub tab titles globally

In your Gauge child theme functions.php file add:

function ghostpool_new_tab_titles( $title, $hub_id ) {
    if ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'review-template.php' ) {
        $title = 'New Title';
    } elseif ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'news-template.php' ) {
        $title = 'New Title';
    } elseif ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'images-template.php' ) {
        $title = 'New Title';
    } elseif ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'videos-template.php' ) {
        $title = 'New Title';
    } elseif ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'write-a-review-template.php' ) {
        $title = 'New Title';
    } elseif ( get_post_meta( $hub_id, '_wp_page_template', true ) === 'user-reviews-template.php' ) {
        $title = 'New Title';
    }
    return $title;
    
}
add_filter( 'ghostpool_hub_tab_title', 'ghostpool_new_tab_titles', 10, 2 );

Replace each occurrence of "New Title" with the title you want for that tab.

146. Theme and Youzify login forms

The theme comes with its own popup login form. You can enable this from Aardvark > Theme Options > Membership > Frontend Popup Form.

If you are using Youzify and have their membership system enabled, the theme's login form is disabled as the two membership systems conflict.

You can disable Youzify membership system from Youzify Panel > General Settings > Activate Membership System.

If you want to use Youzify membership system you can enable their popup login form from Youzify > Membership Settings > Login Settings > Enable Login Popup.

147. Adding comments to hub pages

Copy huber/lib/sections/hub/hub-tab-page.php to your Huber child theme - retaining the directory structure - and add the following tag where the comments to appear.

<?php comments_template(); ?>

148. How to I add new child pages to auto hub form?

If you want to create a new child page that is automatically added to your hubs when using the auto hub form read below. I'm going to use the example of creating a custom Preview child page for your hub.

1) Create a new page template for your preview pages (for example just copy the review-template.php file and rename it to preview-template.php). Open the file and at the top of the page change the template name to whatever you want to call it e.g. Preview. You may want to modify the look of this template afterwards.

2) In your child functions.php file add:

// Add preview checkbox option to automatic hub creation form
function ghostpool_custom_hub_options() {
    echo __( 'Preview', 'gauge' ) . ' <input type="checkbox" name="gp_preview_page" id="gp-preview-page" value="1" checked="checked" />';
}
// Generate preview page from automatic hub creation form
function ghostpool_custom_hub_page( $gp_hub_page_id, $gp_hub_title_prefix ) {
    // Preview Page
    if ( isset( $_POST['gp_preview_page'] ) && $_POST['gp_preview_page'] == '1' ) {
        $gp_new_page_title = $gp_hub_title_prefix . esc_html__( 'Preview', 'gauge' );
        $gp_new_page_content = '';
        $gp_new_page = array(
            'post_type'      => 'page',
            'post_date'      => esc_attr( $_POST['ghostpool_date_time'] ),
            'post_date_gmt'  => esc_attr( $_POST['ghostpool_date_time'] ),
            'post_title'     => esc_attr( $gp_new_page_title ),
            'post_name'      => sanitize_title( $gp_hub_url_prefix . '-' . esc_html__( 'preview', 'gauge' ) ),
            'post_content'   => $gp_new_page_content,
            'post_status'    => 'publish',
            'comment_status' => 'closed',
            'post_parent'    => $gp_hub_page_id
        );
        $gp_new_page_id = wp_insert_post( $gp_new_page );
        update_post_meta( $gp_new_page_id, '_wp_page_template', 'preview-template.php' );            
        update_post_meta( $gp_new_page_id, '_gp_hub_page', 'enabled' );
    }    
}
// Preview page hub tab options
function ghostpool_add_custom_hub_tabs( $value, $type, $gp_hub_tab, $tab_id ) {
    if ( $tab_id == 1 ) {
        if ( $type == 'page_template' ) {
            return 'preview-template.php'; // template file name
        }
        if ( $type == 'tab' ) {
            return 'enabled'; // change to 'disabled' to hide this page from the hub tabs
        }
        if ( $type == 'tab_title' ) {
            return 'Preview'; // the title shown in the hub tabs
        }
        if ( $type == 'tab_link' ) {
            return ''; // custom link
        }
        if ( $type == 'tab_target' ) {
            return ''; // custom link target
        }
    }
}
add_filter( 'ghostpool_custom_hub_tabs', 'ghostpool_add_custom_hub_tabs', 10, 4 );