“PHP 5 introduces the final keyword, which prevents child classes from overriding a method by prefixing the definition withΒ final. If the class itself is being defined final then it cannot be extended”
Month: August 2020
Import all URLs in a sitemap instantly in Google sheet
=IMPORTXML(“https://www.mysite/sitemap.xml”, “//*[local-name() =’url’]/*[local-name() =’loc’]”)
Sublime Google Sheets trick π- import all URLs in a sitemap instantly using:
— Steph Whatley (@SEOStephW) August 27, 2020
=IMPORTXML("https://www.mysite/sitemap.xml", "//*[local-name() ='url']/*[local-name() ='loc']")#SEO #Analysis
Add pagination to WordPress archives or search results.
There are several options to do so.
Here are two exemples, on being taken from the twentyfifteen template.
The class is to apply woocommerce styling in case you are using it.
<div>
<nav class="woocommerce-pagination bt_search_pagination"> <?php
// Previous/next page navigation.
the_posts_pagination(
array(
'prev_text' => __( 'Previous page', 'twentyfifteen' ),
'next_text' => __( 'Next page', 'twentyfifteen' ),
'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyfifteen' ) . ' </span>',
)
);?>
</nav></div>
A second example more compact:
<div class="row">
<div class="col-md-12 text-center">
<nav class="woocommerce-pagination bt_search_pagination"><?php echo paginate_links(); ?></nav>
</div>
</div>
You can add this code in search.php or catregory.php
Remove base for category permalink in woocommerce
I have this idea that longer URI path, or deeper “file hierarchy” would have a negative SEO impact. But recently John Mueller made a statement that URI length did not have any negative SEO impact. The most important thing is that your important page are easily accessible to the search engine, and probably to your customer too.
In this article, Search Engine Journal speaks about length and recommend to keep it short but it’s an extrapolation on what J. Mueller said regarding URI longer than 1000 characters may not be a good practice (which is different from: “the shorter, the better”).
In a more recent tweet, John was clear about that point:
URL length is not a ranking fraction.
— π John π (@JohnMu) February 5, 2020
https://www.seroundtable.com/google-url-length-seo-28952.html
Given that woocommerce does not recommend to remove the product-category base from the permalinks and that there is no clear SEO SEO advantage to it, then there is no reason to implement this feature.
If anything you can implement the option to have the product category included in your product permalink for SEO purpose. Having the product category in your URL might help google identify which category your product belong to and helped it rank for those keywords.
How a wordpress page is generated
https://codex.wordpress.org/Query_Overview
https://web.archive.org/web/20170524181634/http://humanshell.net/2011/08/wordpress-initialization
All http query to the webserver are send to index.php (this is not a redirect as the rule don’t use the redirect flag [R]) in the root folder. The redirect occurs in .htaccess with mod_rewrite
mod_rewrite operate by using a PCRE* regular expression
*PCRE: Perl Compatible Regular Expression
This operation retains the original URI that can be requested with $_server[‘REQUEST_URI’]
Below is the cascade of file that are succesfully called from index.php (up the 5th level but it needs to be expanded)
index.php
set the constant ‘WP_USE_THEMES’ to true and require wp-blog-header.php
wp-blog-header.php
execute wp(). This function is defined in functions.php
requires wp-load.php and template-loader.php
wp-load.php AND template-loader.php
wp-load.php requires wp-config.php
wp-load.php set the constant ‘ABSPATH’
wp-config.php requires wp-settings.php
wp-settings.php
requires:
- version.php
- load.php
- class-wp-paused-extensions-storage.php
- class-wp-fatal-error-handler.php
- class-wp-reccovery-mode-cookie-service.php
- class-wp-recovery-mode-key-service.php
- class-wp-recovery-mode-link-service.php
- class-wp-recovery-mode-email-service.php
- class-wp-recovery-mode.php
- error-protection.php
- default-constant.php
- plugin.php
and also:
- compat.php
- class-wp-list-util.php
- formatting.php
- meta.php
- functions.php
- class-wp-meta-query.php
- class-wp-matchesmapregex.php
- class-wp.php
- class-wp-error.php
- pomo/mo.php
and most of wordpress as well:
- class-wp-walker.php
- class-wp-ajax-response.php
- capabilities.php
- class-wp-roles.php
- class-wp-role.php
- class-wp-user.php
- class-wp-query.php
- query.php
- class-wp-date-query.php
- theme.php
- class-wp-theme.php
- template.php
- class-wp-user-query.php
- class-wp-session-tokens.php
- class-wp-user-meta-sessions-tokens.php
- class-wp-metadata-session-tokens.php
- class-wp-metadata-lazyloader.php
- general-template.php
- link-template.php
- author-template.php
- post.php
- class-walker-page.php
- class-walker-page-dropdown.php
- class-wp-post-type.php
- class-wp-post.php
- post-template.php
- revision.php
- post-formats.php
- post-thumbnail-template.php
- category.php
- class-walker-category.php
- class-walker-category-dropdown.php
- category-template.php
- comment.php
- class-wp-comment.php
- class-wp-comment-query.php
- class-walker-comment.php
- comment-template.php
- rewrite.php
- class-wp-rewrite.php
- feed.php
- bookmark.php
- bookmark-template.php
- kses.php
- cron.php
- deprecated.php
- script-loader.php
- taxonomy.php
- class-wp-taxonomy.php
- class-wp-term.php
- class-wp-term-query.php
- class-wp-tax-query.php
- update.php
- canonical.php
- shortcodes.php
- embed.php
- class-wp-embed.php
- class-wp-oembed.php
- class-wp-oembed-controller.php
- media.php
- http.php
- class-http.php
- class-wp-http-streams.php
- class-wp-http-curl.php
- class-wp-http-proxy.php
- class-wp-http-cookie.php
- class-wp-http-encoding.php
- class-wp-http-response.php
- class-wp-http-requests-response.php
- class-wp-http-requests-hooks.php
- widgets.php
- class-wp-widget.php
- class-wp-widget-factory.php
- nav-menu.php
- nav-menu-template.php
- admin-bar.php
- rest-api.php
- rest-api/class-wp-rest-server.php
- rest-api/class-wp-rest-response.php
- rest-api/class-wp-rest-request.php
- rest-api/endpoints/class-wp-rest-controller.php
- rest-api/endpoints/class-wp-rest-posts-controller.php
- rest-api/endpoints/class-wp-rest-attachments-controller.php
- rest-api/endpoints/class-wp-rest-post-types-controller.php
- rest-api/endpoints/class-wp-rest-post-statuses-controller.php
- rest-api/endpoints/class-wp-rest-revisions-controller.php
- rest-api/endpoints/class-wp-rest-autosaves-controller.php
- rest-api/endpoints/class-wp-rest-taxonomies-controller.php
- rest-api/endpoints/class-wp-rest-terms-controller.php
- rest-api/endpoints/class-wp-rest-users-controller.php
- rest-api/endpoints/class-wp-rest-comments-controller.php
- rest-api/endpoints/class-wp-rest-search-controller.php
- rest-api/endpoints/class-wp-rest-blocks-controller.php
- rest-api/endpoints/class-wp-rest-block-renderer-controller.php
- rest-api/endpoints/class-wp-rest-settings-controller.php
- rest-api/endpoints/class-wp-rest-themes-controller.php
- rest-api/fields/class-wp-rest-meta-fields.php
- rest-api/fields/class-wp-rest-comment-meta-fields.php
- rest-api/fields/class-wp-rest-post-meta-fields.php
- rest-api/fields/class-wp-rest-term-meta-fields.php
- rest-api/fields/class-wp-rest-user-meta-fields.php
- rest-api/search/class-wp-rest-search-handler.php
- rest-api/search/class-wp-rest-post-search-handler.php
- class-wp-block-type.php
- class-wp-block-styles-registry.php
- class-wp-block-type-registry.php
- class-wp-block-parser.php
- blocks.php
- blocks/archives.php
- blocks/block.php
- blocks/calendar.php
- blocks/categories.php
- blocks/latest-comments.php
- blocks/latest-posts.php
- blocks/rss.php
- blocks/search.php
- blocks/shortcode.php
- blocks/social-link.php
- blocks/tag-cloud.php