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 !
Bổ sung Chức Năng Web WP
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
- Nếu bạn cần chuyển đổi domain mới thì tham khảo bài viết: Cách đổi domain wp
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ó ?
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ẹoquá 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
- Nên cài tối thiểu 01 plugin bảo mật như ithemesecurity hoặc Wordfence …
- Thay đường dẫn mặc định domain.com/wp-admin
- 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é ^^
bảo mật file wp-config
..tiếp tục cập nhật..
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:
- 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, và
- 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>
và </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à....
Sep
Kiếm Tiền Từ Google Adsense ? Doanh thu Youtube Việt Nam
Kiếm tiền MMO qua google adsense blog / youtube đã & đang là một kênh....
Sep
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....
Sep
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....
Sep
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....
Sep
Ký Tự Đặc Biệt Chèn Quảng Cáo Google Adword
Cách viết chèn ký tự đặc biệt vào mẫu Quảng Cáo Google Adword sẽ giúp....
Sep