Tổng hợp một số code cho Theme Flatsome và cũng có thể tương thích với các mẫu theme wordpress khác !

Các code liên quan tới bảo mật, ẩn hiện một vài chức năng như bình luận, tối ưu bài viết…

Lưu ý: Các code này mình tổng hợp lưu tại đây để mình sử dụng trong các dự án web của mình, nếu ai ngó qua thấy hợp lý thì xài …thoải mái nhé !

Thay thế plugin classic editor

Bình thường cài wordpress từ 5.0 trở đi thì sẽ ko còn phiên bản nhập liệu kiểu cũ nữa! Thay vào đó là kiểu nhập liệu theo Block Editor / Gutenberg

Ai chưa quen & nên phải cài thêm plugin classic editor

Code thay thế plugin classic editor

Với Block editor

add_filter('use_block_editor_for_post', '__return_false');

Với Gutenberg

add_filter('gutenberg_can_edit_post_type', '__return_false');

Ah quên, thêm code trên vô file: funtion.php trong theme nhé ^^

Xóa khoảng trống

//Xóa khoang trang do trinh soan thao
function remove_auto_p_tinymce($in) {
$in['forced_root_block'] = "";
$in['force_p_newlines'] = true;
return $in;
}
add_filter( 'tiny_mce_before_init', 'remove_auto_p_tinymce' );
//Ket thuc

Toàn tập về 301

301 là gì ? nếu chửa biết thì ngó qua bài Status code Http

Nói chung thì 301 là siêu quan trọng trong Web & SEO . Bởi khi có những thay đổi để tránh nguy cơ bị lỗi 404 hay mất thứ hạng SEO trong công cụ tìm kiếm thì giải pháp 301 là chuẩn men nhất !

Vài vấn đề về 301 trong WP

  • Nếu sửa link bài viết đã tồn tại thì nên 301 ngay. Có thể xài plugin 301 để hỗ trợ. Hoặc xài Yoast SEO Pro thì nó có sẵn chức năng Redirect tự động luôn.

Permalink là cấu trúc link một web bất kỳ, Thường khi cài đặt mới thì admin đã lựa chọn 1 cấu trúc chuẩn để sử dụng. Tuyệt đối ko sửa cấu trúc link ! Đó là cảnh báo rõ ràng trong setting permalink

Nhưng, đời không như là mơ ! Có lúc vẫn phải làm điều cấm kỵ trên ! Bởi nhiều lý do…abc…xyzzzz

Thì lại phải nhớ về 301 nhé. Redirect toàn bộ link cũ về link cấu trúc mới. Làm thế nào thì tùy hoàn cảnh.

  • Ví dụ web: www.domain.com/postname/
  • Tôi muốn sửa thành: www.domain.com/category/postname/  ?

Phương án 1

1- vô Setting / permalink  >>sửa theo cấu trúc mới

2- Cài đặt: Permalink Redirect

Gần như là xong. Chỉ cần điển cấu trúc link cũ vào ô Old Permalink Structures là xong !

Phương án 2

Code to file .htacess

Đây là giải pháp thay thế: Plugin Really Simple SSL

Thêm code dưới vô file .htacess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

ngược lại gỡ bỏ Https to Http

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Code giúp loại bỏ ô URL trong hộp bình luận mặc định của WP

/*************** Remove URL of Comment Box ***************/
add_filter('comment_form_default_fields', 'unset_url_field');
function unset_url_field($fields){
if(isset($fields['url']))
unset($fields['url']);
return $fields;
}

Chạy nhiều domain trên 01 web

Đầu tiên phải tiến hành add domain vô Host. Trỏ IP trong DNS domain về Host. Có thể xài plugin: Multiple Domain

Giải pháp Canonical Link để tránh trùng lặp nội dung khi website của bạn có nhiều domain cùng trỏ về

Thêm code dưới đây vô file function.php

Nếu chưa rõ Canonical là gì thì xem: Thuật Ngữ SEO

tạo breadcrumb vs yoast seo

Một vài theme ko hỗ trợ Breadcrumb 🙁 Nên chúng ta phải tự túc thêm breadcrumb bằng tayyyy. Có thể thêm code nếu bạn rành, ko thì xài plugin, nếu bạn đang xài YoastSEO Pro thì sao ko dùng tính năng Breadcrumb của chính nó ?

Tổng Hợp Code Chức Năng Website WordPress 5

YoastSEO có nhiều cái hay …ho..

^^ YoastSEO có nhiều cái hay thiệt đó !

Với YoastSEO Free là bạn có thể xài khá OK

  • Hỗ trợ tối ưu bài viết, tối ưu từ khóa
  • Gợi ý điều hướng link bài viết liên quan

YoastSEO PRO sẽ hỗ trợ thêm tính năng Premium

  • Báo lỗi từ Google Search Console
  • Tạo Redirect cho các lỗi liên lết 301, 410,…
  • Khi bạn xóa bài, hay sửa bài viết, sửa link nó sẽ tự động gợi ý redirect link luôn
  • …thêm gợi ý từ khóa mở rộng…
  • Tạo breadcrumb… chi tiết dưới
  • …vân…vân & mây…mây… 😉

YoastSEO PRO có phần tọa breadcrumb và chỉ cần chèn code theo hướng dẫn của yoast là ok. Tuy nhiên có vài thứ chưa được đẹp đẽ cho lắm ~ nên cần cân chỉnh lại chút xíu ~

Như blog này nhé: Theme Flatsome chỉ hỗ trợ breadcrumb cho trang sản phẩm, not support for blog ! vậy nên mình phải tối ưu thêm >> chính xác hơn là quay tayyy thêm breadcrumb !

NHƯNG cho theo code nguyên bản của Yoast bị vẹo quá nên cần thêm dòng nữa

Code:

<div class="page-title-inner flex-row medium-flex-wap container">
<?php
if ( function_exists('yoast_breadcrumb') ) {
yoast_breadcrumb('
<p id="breadcrumbs">','</p>');
}
?>
</div>

Breadcrumb hỗ trợ SEO tốt hơn !

Tất nhiên rồi, breadcumb là một thanh điều hướng thông minh. Giống như bạn đang đi trên đường , các biển chỉ đường sẽ cho bạn biết bạn đang ở đâu, sắp đi tới đâu, quay lại chỗ cũ thế nào ?

  • Breadbcrum là như vậy ! Sẽ chỉ cho người đọc biết mình đang ở đâu? Thuộc chuyên mục nào?
  • Breeadcrumb sẽ giúp người đọc không “lạc đường” trong website nhiều nội dung, nhiều chuyên mục khác nhau !
  • Những web có Breadcrumb sẽ được Google đánh giá cao hơn web tương tự mà không có ? Chắc chắn rồi !

Nên chốt lại là có Breadcrumb sẽ hỗ trợ SEO tốt hơn ^^

P/s: Web này là xài YoastSEO PRO – Theme Flatsome / Breadcrumb code như bài viết này !

Code to Redirect

Thêm code vô .htacess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.thenaynhe.com$
RewriteRule (.*) http://thenaynhe.com/$1 [R=301,L]
</IfModule>

Đây là ví dụ một domain trỏ về thenaynhe.com

Thêm code vô .htacess / sửa domain của bạn trong code dưới nha

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://thenaynhe.com/$1 [R=301,L]
</IfModule>

Thêm code vô .htacess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^thenaynhe.com$
RewriteRule (.*) http://www.thenaynhe.com/$1 [R=301,L]
</IfModule>

Code thay thế plugin 404 to homepage. Thêm code dưới vô file 404 trong theme. Theme ko có file 404 thì tạo file mới add code vô ! chưa bít 404 là gì ?

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo('url'));
exit();
?>

bảo mật worrdpress

Phần này tôi tổng hợp các giải pháp, các mẹo nhỏ,..để tăng tính bảo mật cho web wp

  1. Nên cài tối thiểu 01 plugin bảo mật như ithemesecurity hoặc Wordfence …
  2. Thay đường dẫn mặc định domain.com/wp-admin
  3. Dùng plugin Captcha để hạn chế Bots spam

ẩn hiện editor theme

Giải pháp ẩn hiện chức năng editor theme trong phần Appearance . Các bản cập nhật WP thì chức năng này luôn bị tắt đi.

Đây cũng là một phần của bảo mật, nhằm tránh người dùng vào chỉnh sửa giao diện tùy ý ~ Tất nhiên, là vì trong web có thể có nhiều user và khi ta không kiểm soát hết thì nên đóng chức năng lại. Cũng như web khi bàn giao khách hàng mà họ không có chuyên môn thì cũng nên đóng chức năng này lại !

Tìm code dưới trong file: wp-config.php (trong host / server nhé)

define( ‘DISALLOW_FILE_EDIT’, true);

  • True – Đã khóa theme editor
  • False – Mở theme editor

Thế nhé ^^

the nay nhe
Tổng Hợp Code Chức Năng Website WordPress 6

bảo mật file wp-config

..tiếp tục cập nhật..

Tổng Hợp Code Chức Năng Website WordPress 7

Chặn Hotlink

Hotlink chính là link trực tiếp đến trang web của người khác lấy các file về sử dụng trên website, có thể là file hình ảnh, video, tài liệu … Hotlink là một giải pháp cho những blog tạm, không chắc chắn và những ai hay đi copy bài người viết của các trang web khác. Hotlink sẽ làm tốn một lượng băng thông rất lớn vì các site khác lấy file trực tiếp từ host của bạn. Sau đây là cách mà bạn ngăn chặn việc đó bằng file .htaccess

RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?your-site.com [NC]RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?your-other-domain.com [NC]RewriteRule .(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

sửa lại phần your-site là tên trang web của bạn. Your-other-domain là trang web bạn cho phép hotlinking. Nếu bạn chỉ muốn duy nhất website của bạn hiển thị hình ảnh thì có thể bỏ dòng này đi

Chú ý: có những hạn chế nhất định khi sử dụng tính năng này là : Khi share bài viết web lên MXH abc.. sẽ có nguy cơ 403 hình ảnh !

P/s: Một số nhà cung cấp Host / server có tính năng Hotlink Protection sẵn trong Cpanel,. Và ta chỉ cần vô bật tính năng này lên là xong !

Disavow Link

Dưới đây là file để up vô mục từ chối liên kết của Googel Console (trước kia là Webmaster Tools)

Cấu trúc viết trong file name: disavow_links.txt

# Two pages to disavow http://thenaynhe.com/seo/nay-no.html http://thenaynhe.com/marketing/chien-luoc.html # One domain to disavowdomain:thenaynhe.com

Chỉ dẫn Google về Disavow Link

Trong hầu hết các trường hợp, Google có thể đánh giá liên kết nào đáng tin mà không cần hướng dẫn bổ sung, vì vậy phần lớn trang web sẽ không cần phải sử dụng công cụ này.

Bạn chỉ nên từ chối các liên kết ngược nếu:

  1. Bạn cho rằng bạn có một số lượng đáng kể các liên kết spam, giả mạo, chất lượng thấp trỏ đến trang web của mình,
  2. Các liên kết này đã dẫn đến thao tác thủ công hoặc có thể sẽ dẫn đến thao tác thủ công trên trang web của bạn. >>tham khảo tại đây

Disavow Link tại đây

Htacess

Đôi khi nghịch ngợm nghí ngoáy WP mà bị:

404 Not FoundThe resource requested could not be found on this server

Lúc này cần xem lại file .htacess còn hay mất? có thể do chỉnh chọt này nọ mà nó lộn tà xộn lên thì xóa cmn đi, rồi làm lại với code mặc định dưới he !

Code mặc định của file .htaccess WordPress:

# BEGIN WordPressRewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]# END WordPress

Code thay thế Plugin

Add below code to: before the body and HTML closing tags

<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($) {
$('a').each(function() {
var a = new RegExp('/' + window.location.host + '/');
if(!a.test(this.href)) {
$(this).click(function(event) {
event.preventDefault();
event.stopPropagation();
window.open(this.href, '_blank');
});
}
});
});
//]]>
</script>

Code Làm Nút Gọi – Chat – Zalo … thay plugin

Add code dưới vô Footer Scripts  trong theme FS nhé:

<style>.float-contact {
position: fixed;
bottom: 20px;
left: 20px;
z-index: 99999;
}
.chat-zalo {
background: #8eb22b;
border-radius: 20px;
padding: 0 18px;
color: white;
display: block;
margin-bottom: 6px;
}
.chat-face {
background: #125c9e;
border-radius: 20px;
padding: 0 18px;
color: white;
display: block;
margin-bottom: 6px;
}
.float-contact .hotline {
background: #d11a59!important;
border-radius: 20px;
padding: 0 18px;
color: white;
display: block;
margin-bottom: 6px;
}
.chat-zalo a, .chat-face a, .hotline a {
font-size: 15px;
color: white;
font-weight: 400;
text-transform: none;
line-height: 0;
}
@media (max-width: 549px){
.float-contact{
display:none
}
}</style>
<div class="float-contact">
<button class="chat-zalo">
<a href="http://zalo.me/098xxxxx">Chat Zalo</a>
</button>
<button class="chat-face">
<a href="http://m.me/thenaynhe82">Chat Facebook</a>
</button>
<button class="hotline">
<a href="tel:098xxxxx">Hotline: 098xxxxx</a>
</button>
</div>

Điều chỉnh kích thước màn hình hiển thị nút gọi này từ dòng @media . Hiện tại chỉ hiển thị nút gọi trên desktop
Nguồn từ bạn giuseart.com

P/s: Với các theme ko có theme option / footer scripts thì chúng ta cần tìm file footer.php

Rồi add code trên vô giữa thẻ đóng </body></html>

Giải pháp copy một bài viết có hình ảnh từ web khác về website của mình ? Mà không phải saved ảnh rồi upload hình ảnh lên ?

Một giải pháp cực hay thay thế một vài plugin nào đó ~ khá đắt tiền !

Code dưới đây có khả năng sẽ giúp giản hóa công việc nhờ việc web sẽ tự động import hình ảnh sau khi copy/paste vào bài viết. Việc còn lại chỉ là edit bài viết cho đẹp rồi >> Publish !

Code >>Copy >> Paste in Function file.Code trên sẽ chèn vô file function trên theme nhé

//========================================
class Auto_Save_Images{
function __construct(){
add_filter( 'content_save_pre',array($this,'post_save_images') );
}
function post_save_images( $content ){
if( ($_POST['save'] || $_POST['publish'] )){
set_time_limit(240);
global $post;
$post_id=$post->ID;
$preg=preg_match_all('/<img.*?src="(.*?)"/',stripslashes($content),$matches);
if($preg){
foreach($matches[1] as $image_url){
if(empty($image_url)) continue;
$pos=strpos($image_url,$_SERVER['HTTP_HOST']);
if($pos===false){
$res=$this->save_images($image_url,$post_id);
$replace=$res['url'];
$content=str_replace($image_url,$replace,$content);
}
}
}
}
remove_filter( 'content_save_pre', array( $this, 'post_save_images' ) );
return $content;
}
function save_images($image_url,$post_id){
$file=file_get_contents($image_url);
$post = get_post($post_id);
$posttitle = $post->post_title;
$postname = sanitize_title($posttitle);
$im_name = "$postname-$post_id.jpg";
$res=wp_upload_bits($im_name,'',$file);
$this->insert_attachment($res['file'],$post_id);
return $res;
}
function insert_attachment($file,$id){
$dirs=wp_upload_dir();
$filetype=wp_check_filetype($file);
$attachment=array(
'guid'=>$dirs['baseurl'].'/'._wp_relative_upload_path($file),
'post_mime_type'=>$filetype['type'],
'post_title'=>preg_replace('/.[^.]+$/','',basename($file)),
'post_content'=>'',
'post_status'=>'inherit'
);
$attach_id=wp_insert_attachment($attachment,$file,$id);
$attach_data=wp_generate_attachment_metadata($attach_id,$file);
wp_update_attachment_metadata($attach_id,$attach_data);
return $attach_id;
}
}
new Auto_Save_Images();
//========================================

Code này được một bạn Share trên Facebook Group Flatsome VN

// Move description product category to bottom
remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 );
remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 );
add_action( 'woocommerce_after_main_content', 'woocommerce_taxonomy_archive_description' );
add_action( 'woocommerce_after_main_content', 'woocommerce_product_archive_description' );

Một số theme ko có chức năng ghim widget khi trượt bài post, như blog thenaynhe theme FS này. Mọi người phần lớn xài plugin Q2W3 Fixed Widget. Tôi thì xài code CSS dưới đây:

/*thenaynhe - sidebar sticky and floating*/
@media only screen and (min-width: 1024px) {
.widget-area {
position: -webkit-sticky;
position: sticky;
top: 0;
padding-top: 10px;
}
}

cùng hội cùng thuyền nè:
Hướng dẫn chạy Quảng Cáo Youtube từ A-Z

Youtube là kênh video thuộc Google nên chạy quảng cáo youtube với google ads là....

Tình Hình Kiếm Tiền Từ Google Adsense ? Giá CPC Tại Việt Nam ?

Kiếm tiền MMO qua google adsense hay kiếm tiền qua kênh google adsense là một....

Lỗi 404 301 302 Là Gì ? Status Code HTTP

301 / 500 / 404 error… Là gì ? Chắc hẳn ace làm web đều....

Tổng Hợp Danh Sách Báo Chí – Báo Điện Tử Việt Nam

Hôm nay ngồi check thông tin Website báo chí để phục vụ việc chạy quảng....

Lựa chọn Hosting tốt nhất Việt Nam

thenaynhe giới thiệu một số Server / VPS / Hosting Tốt Nhất Việt Nam & Thế....

Share Theme WordPress Premium – Chia Sẻ Theme WP Bản Quyền

Chia sẻ theme wordpress free & theme bản quyền được mua từ nhiều nguồn uy....

Leave a Reply

Your email address will not be published. Required fields are marked *