properties - thuộc tính:
- length: lấy chiều dài của chuỗi
var txt = "Hello World!";
alert(txt.length);
Methods - Phương thức:
charAt(): trả ký tự ở 1 vị trí trong chuỗi
var str = "Hello world!";
document.write("First character: " + str.charAt(0) + "<br />"); //First character: H
document.write("Last character: " + str.charAt(str.length-1)); // document.write("Last character: " + str.charAt(str.length-1))
charCodeAt(): trả về mã Unicode của ký tự
var str = "Hello world!";
document.write("First character: " + str.charCodeAt(0) + "<br />");
document.write("Last character: " + str.charCodeAt(str.length-1));
concat(): nối nhiều chuỗi lại thành 1 chuỗi lớn
var str1="Hello ";
var str2="world!";
document.write(str1.concat(str2));
fromCharCode(): chuyễn mã Unicode thành ký tự
document.write(String.fromCharCode(72,69,76,76,79) );//HELLO
indexOf(): vị trí đầu tiên của ký tự trong chuỗi, và -1 nếu ký tự không nằm trong chuỗi
var str="Hello world!";
document.write(str.indexOf("Hello") + "<br />");//0
document.write(str.indexOf("WORLD") + "<br />");//-1
document.write(str.indexOf("world"));//6
lastIndexOf():vị trí cuối cùng của ký tự trong chuỗi, và -1 nếu ký tự không nằm trong chuỗi
match(): trả về thông tin giống nhau giữa 1 biểu thức so mẫu và chuỗi
var str="The rain in SPAIN stays mainly in the plain";
var patt1=/ain/gi;
document.write(str.match(patt1)); //ain,AIN,ain,ain
replace(): thay thế tin giống nhau giữa 1 biểu thức so mẫu và chuỗi
var str="Visit Microsoft!";
document.write(str.replace("Microsoft", "W3Schools"));//Visit W3Schools!
search(): trả về vị trí giống nhau giữa 1 biểu thức so mẫu và chuỗi
var str="Visit W3Schools!";
document.write(str.search("W3SCHOOLS"));//-1
slice(): tách 1 phần của 1 chuỗi thành chuỗi mới
var str="Hello happy world!";
// extract all characters, start at position 0:
document.write(str.slice(0)+"<br />"); //Hello happy world!
// extract all characters, start at position 6:
document.write(str.slice(6)+"<br />"); //happy world!
// extract from the end of the string, and to position -6:
document.write(str.slice(-6)+"<br />");//world!
// extract only the first character:
document.write(str.slice(0,1)+"<br />");//H
// extract the characters from position 6 to position 11:
document.write(str.slice(6,11)+"<br />");//happy
split(): tách 1 chuỗi thành 1 mảng với mỗi phần tử là các chuỗi con
var str="How are you doing today?";
document.write(str.split() + "<br />");//How are you doing today?
document.write(str.split(" ") + "<br />");//How,are,you,doing,today?
document.write(str.split("") + "<br />");//H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
document.write(str.split(" ",3));//How,are,you
substr(): cắt 1 số ký tự ra khỏi chuỗi lớn dựa 1 điểm bắt đầu và số ký tự cần lấy
var str="Hello world!";
document.write(str.substr(3)+"<br />"); //lo world!
document.write(str.substr(3,4));//lo w
substring(): tách 1 chuỗi ra khỏi chuỗi lớn ở khoảng giữa 2 chữ số
var str="Hello world!";
document.write(str.substring(3)+"<br />");//lo world!
document.write(str.substring(3,7));//lo w
toLowerCase(): chuyển 1 chuỗi sang chữ thường
var str="Hello World!";
document.write(str.toLowerCase());
toUpperCase(): chuyển 1 chuỗi sang chữ hoa
var str="Hello world!";
document.write(str.toUpperCase());
valueOf() : trả về giá trị của đối tượng
var str="Hello world!";
document.write(str.valueOf()); //Hello world!
Nguồn: phpbasic
Thứ Hai, 24 tháng 11, 2014
Thứ Bảy, 13 tháng 9, 2014
Không hiển thị 1 nhãn trên trang chủ
Chúng ta đều biết Blogger đã có tính năng tạo trang tĩnh (static_page) giúp người dùng tạo các trang chuyên biệt như trang giới thiệu (About), trang liên hệ (Contact)… Đặc trưng của các trang tĩnh là không được duyệt hiển thị trên trang chính (kiểu trang index gồm trang chủ, trang nhãn và trang lưu trữ). Tuy nhiên Blogger giới hạn số trang tĩnh tối đa được tạo cho mỗi blogspot là 20 trang. Dường như con số này quá khiêm tốn so với nhu cầu sử dụng của bạn. Nào là trang nén CSS, trang mã hóa, trang mã màu, trang liên kết, trang sản phẩm, trang dịch vụ, trang diễn đàn, trang liên hệ, trang giới thiệu, trang góp ý, trang lưu bút … Tính ngót ra cũng đến trên dưới hai chục trang như vậy. Thế thì làm sao để thỏa mãn nhu cầu tạo trang riêng biệt như thế.
Bạn có thể xem DEMO (Chú ý ở tiện ích Recent Posts có hiển thị 2 bài viết đầu tiên thuộc 1 nhãn song đến trang chủ thì không nhìn thấy chúng nữa).
Lời giải đáp lại đụng đến các lệnh điều kiện trong cấu trúc XML của Template. Ở đây mình sẽ gán một nhãn chung cho các bài viết được dùng để tạo trang riêng biệt giống trang tĩnh, ví dụ tên nhãn làHiddenLabel. Nào chúng ta hãy bắt đầu thực hiện như sau:
» Cách 1: Ẩn bài viết thuộc nhãn nhất định ở kiểu trang index!
1. Đăng nhập vào tài khoản Blogger
2. Vào phần Mẫu (Template)
3. Chọn chỉnh sửa HTML (Edit HTML)
4. Tìm thẻ sau:
2. Vào phần Mẫu (Template)
3. Chọn chỉnh sửa HTML (Edit HTML)
4. Tìm thẻ sau:
<b:include data='post' name='post'/>
- Lệnh include ở trên sẽ giúp duyệt hiển thị các bài viết ở tất cả các kiểu trang. Vậy ta bắt đầu thay nó bằng đoạn code bên dưới:
<!-- Điều kiện nếu ở kiểu trang index --><b:if cond='data:blog.pageType == "index"'><!-- Điều kiện nếu ở các bài viết có gắn nhãn --><b:if cond='data:post.labels'> <b:loop values='data:post.labels' var='label'> <b:if cond='data:label.name != "HiddenLabel"'><!-- Ở đây đặt điều kiện cho các nhãn, hiển thị bài viết của tất cả các nhãn ở trang index, trừ nhãn có tên HiddenLabel --><b:include data='post' name='post'/> <!-- Kết thúc điều kiện cho các nhãn --> </b:if> </b:loop> <b:else/><!-- Nếu các bài viết không gắn nhãn thì cũng cho hiển thị ở trang index --><b:include data='post' name='post'/> </b:if> <b:else/><!-- ở kiểu trang còn lại là các trang item thì --><b:include data='post' name='post'/> </b:if>
5. Tiếp theo là ẩn liên kết nhãn HiddenLabel ở cuối bài viết hoặc dưới tiêu đề bài viết để khi ta đọc đến các bài viết thuộc nhãn HiddenLabel thì sẽ không nhìn thấy liên kết của nó.
5.1. Tìm tất cả các đoạn code như bên dưới.
5.1. Tìm tất cả các đoạn code như bên dưới.
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url'
rel='tag'><data:label.name/></a><b:if
cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
5.2.. Rồi thay nó bằng đoạn code bên dưới.
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != "HiddenLabel"'>
<a expr:href='data:label.url'
rel='tag'><data:label.name/></a><b:if
cond='data:label.isLast != "true"'>,</b:if>
</b:if>
</b:loop>
6. Lưu Template là hoàn thành.
- Bằng cách này chúng ta có thể tạo được rất nhiều trang riêng biệt có tính năng không hiển thị ở kiểu trang chính như trang tĩnh vậy, miễn là ta gán cho các bài viết đó chung cho một nhãn nhất định.
- Bằng cách này chúng ta có thể tạo được rất nhiều trang riêng biệt có tính năng không hiển thị ở kiểu trang chính như trang tĩnh vậy, miễn là ta gán cho các bài viết đó chung cho một nhãn nhất định.
» Cách 2: Ẩn một nhãn ở kiểu trang Index:
- Các bạn thực hiện từ bước 1 đến bước 5.1 ở cách 1 bên trên. sau đó thay code bước 5.2 thành đoạn code bên dưới:
<!-- Điều kiện nếu ở kiểu trang index -->
<b:if cond='data:blog.pageType == "index"'>
<!-- Điều kiện nếu ở các bài viết có gắn nhãn -->
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != "Tên nhãn 1"'>
<b:if cond='data:label.name != "Tên nhãn 2"'>
<b:include data='post' name='post'/>
<!-- Kết thúc điều kiện cho các nhãn -->
</b:if></b:if>
</b:loop>
<b:else/>
<!-- Nếu các bài viết không gắn nhãn thì cũng cho hiển thị ở trang index -->
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<!-- ở kiểu trang còn lại là các trang item thì -->
<b:include data='post' name='post'/>
</b:if>
- Lưu Template là hoàn thành.
Hiển thị 1 nhãn trên trang chủ
1. Đăng nhập vào blog của bạn.
2. Chọn mẫu (tempalate) => Chọn Chỉnh sửa HTML (Edit HTML)
3. Tìm đoạn code <b:includable id='main' var='top'> và kéo chuột xuống vài dòng bạn sẽ tìm được đoạn code tương tự như bên dưới (đoạn này có thể khác nhau tuỳ theo từng blog nha các bạn):
- Lúc này mình tìm thẻ đóng </b:includable> của thẻ <b:includable id='main' var='top'>. Và đặt đoạn code bên dưới vào sau thẻ </b:includable> nói trên.
2. Chọn mẫu (tempalate) => Chọn Chỉnh sửa HTML (Edit HTML)
3. Tìm đoạn code <b:includable id='main' var='top'> và kéo chuột xuống vài dòng bạn sẽ tìm được đoạn code tương tự như bên dưới (đoạn này có thể khác nhau tuỳ theo từng blog nha các bạn):
<b:loop values='data:posts' var='post'>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>
<b:if cond='data:post.includeAd'>
<b:if cond='data:post.isFirstPost'>
<data:defaultAdEnd/>
<b:else/>
<data:adEnd/>
</b:if>
<data:adCode/>
<data:adStart/>
</b:if>
<b:if cond='data:post.trackLatency'>
<data:post.latencyJs/>
</b:if>
</b:loop>
- Thay thế nó thành đoạn code bên dưới:<b:loop values='data:posts' var='post'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name == "Show Label"'>
<b:include data='post' name='printPosts'/>
</b:if>
</b:loop>
</b:if>
<b:else/>
<b:include data='post' name='printPosts'/>
</b:if>
</b:loop>
Ở đây Show Label, Chính là tên nhãn mà bạn muốn hiển thị bài viết của nhãn đó ở trang chủ.
- Lúc này mình tìm thẻ đóng </b:includable> của thẻ <b:includable id='main' var='top'>. Và đặt đoạn code bên dưới vào sau thẻ </b:includable> nói trên.
<b:includable id='printPosts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == "static_page"'>
<b:include data='post' name='comments'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:include data='post' name='comments'/>
</b:if>
</b:includable>
Lưu mẫu lại và kiểm tra kết quả của các bạn nha.
Thứ Sáu, 12 tháng 9, 2014
responsive comment facebook for blogspot
Chèn comment facebook cho blogspot như thế nào ? Các bước tích hợp responsive comment facebook cho blogger chuẩn HTML5 ? Đó là vấn đề cần nhắc đến bài này .
Đầu tiên các bạn đăng nhập vào tài khoản blogger của bạn chọn Mẫu >> Chỉnh sửa HTML nhấn Ctrl+F tìm đến thẻ ]]></b:skin> thêm đoạn CSS bên dưới lên trước nó .
Lưu ý:
CSS Responsive comment facebook
@media only screen and (max-width: 767px) {Sau khi thêm CSS xong chúng ta tìm đến thẻ </head> thêm Javascript bên dưới lên trước nó.
.fb-comments {
width: 100% !important;
}
.fb-comments iframe[style] {
width: 100% !important;
}
.fb-like-box {
width: 100% !important;
}
.fb-like-box iframe[style] {
width: 100% !important;
}
.fb-comments span {
width: 100% !important;
}
.fb-comments iframe span[style] {
width: 100% !important;
}
.fb-like-box span {
width: 100% !important;
}
.fb-like-box iframe span[style] {
width: 100% !important;
}
}
Javascript comment facebook
<script type='text/javascript'>Tiếp tục chúng ta tìm đến thẻ</body> và thêm đoạn Code ngôn ngữ facebook bên dưới lên trước nó
//<![CDATA[
var purl= location.href;
var fb_href = purl.substring(0,purl.indexOf(".html")+5);
var fbcm ='<div class="fb-comments" data-href="'+fb_href+'" data-num-posts="10" data-width="100%"></div>';
//]]>
</script>
Code ngôn ngữ facebook
<div id='fb-root'/>Để hiển thị comment facebook chúng ta tìm đến thẻ <b:include data='post' name='post'/>và thêm đoạn mã bên dưới sau nó.
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/vi_VN/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<b:if cond='data:blog.pageType == "item"'>Để quản lý facebook chúng ta cần thêm thẻ meta <meta content='App ID' property='fb:app_id'/> dưới thẻ <head>
<script type='text/javascript'>
document.write(fbcm);
</script>
</b:if>
Lưu ý:
- Nếu các bạn chưa biết cách tạo App ID để quản lý facebook và ưu nhược điểm của nó thì các bạn xem bài này
- data-num-posts="10" Số 10 là số lượng comment hiển thị.
Bước cuối cùng lưu lại và test kết quả tìm được .Chúc các bạn thành công !
Thứ Tư, 10 tháng 9, 2014
3CD hướng dẫn Blend màu đẹp cho dân thiết kế
- Chọn bộ 3CD hướng dẫn Blend ảnh đẹp cho các bạn.
Hi xin chào các bạn,nay mình giới thiệu 3 bộ CD hướng dẫn Blend ảnh cho các bạn hay dùng photoshop thích chỉnh sửa ảnh,blend ảnh .Đây là bộ CD có thể nói là tuyệt vời với những ai mong muốn nâng cao tay nghề thiết kế.Bộ đĩa rất rễ học với hình ảnh và video hướng dẫn chi tiết, tất cả bằng tiềng việt vì nó được làm bởi tác giả tác giả “Nguyễn Văn Lương-Namdatviet“.
Link tải từ host Google yêu quý nên các bạn yên tâm về tốc độ nhé :).Link download 3 bộ CD cho các bạn :
Chúc các bạn học tốt với bộ CD này!.
20 Tutorials to Develop Plugin WordPress
I collect from pelfusion.com, you can visit pelfusion.com or see below
plugin for wordpress
- Dưới đây là những kiến thức mà tôi thu thập được trên internet trong thời gian tìm hiểu wordpress. Và tôi sử dụng kiến thức từ cuốn tài liệu tiếng anh “ebook WordPress Developer Plugin “
Lap trinh WordPress7Và tôi sẽ chia sẽ những kiến thức đó với mong muốn học hỏi, trao đổi kiến thức.
- Như tôi đã trình bày. Những bài tôi viết chủ yếu dành cho các bạn mời bắt đầu vào wordpress. Các bạn đã tìm hiểu qua có thể trao đổi hoặc giúp tôi viết những tut khác hay hơn và sâu hơn.
- Tôi sẽ trình bày các phương thức cơ bản nhất của plugin.
Trước tiên mình lấy một cái ví dụ nho nhỏ:
Các bạn tạo một file tên là stripUnicode.php nằm trong folder có đường dẫn như sau:
Wordpress/wp-content/plugins/stripUnicode.php
Các bạn mở file này lên và viết một số đoạn code như sau:
/*
Plugin Name: stripUnicode
Plugin URI: localhost
Description: Plugin remove Unicode
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
*/
function stripUnicode($str) {
if (!$str)
return false;
$unicode = array(
'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|� �|ẩ|ẫ|ậ',
'd' => 'đ',
'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
'i' => 'í|ì|ỉ|ĩ|ị',
'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|� �|ở|ỡ|ợ',
'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
'y' => 'ý|ỳ|ỷ|ỹ|ỵ',
);
foreach ($unicode as $nonUnicode => $uni)
$str = preg_replace("/($uni)/i", $nonUnicode, $str);
return $str;
}
- Nhìn code của function stripUnicode các bạn cũng biết chức năng nó là chuyển đổi một đoạn chữ có dấu sang không có dấu. thường dùng để tạo đường link thân thiện
- Trong đoạn comment đầu tiên chính là khai báo cấu trúc của plugin và cũng là khai báo cho wordpress biết đây là một plugin. Vậy các bạn thấy plugin có gì khác lạ không cũng bình thường nhỉ chỉ là những đoạn code bình thường nhằm thực hiện một cái gì đó chứ ko phải nó to tác như trong đầu các bạn đang suy nghĩ. Hồi xưa mình cũng vậy. mới vào nghe viết plugin wordpress nghe ghê gớm lắm nhưng thực ra chỉ là thế :D
- Khai báo tên của plugin
Plugin Name: stripUnicode
- Khai báo nguồn gốc của plugin
Plugin URI: localhost
- Mô tả sơ lược về plugin này
Description: Plugin remove Unicode
- Tác giả, version và đường link của tác giả.
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
- Trong số những thôg tin trên thì Plugin name là quan trọng nhất. các bạn không thể thiếu dòng này
- Vậy là ta đã viết xong một plugin. Các bạn vào admin -> plugins thì sẽ thấy plugin strip Unicode mà ta vừa tạo ra. Các bạn active nó sau đó ra ngoài site xem trang xem chi tiết một bài viết bất kỳ nào đó. Điều gì xảy ra …. Chưa có gì đúng không nào.
Vấn đề ở đây là ta chưa khai báo sử dụng nó. Để sử dụng nó ta dùng đoạn code sau đây đặt bên dưới function stripUnicode
Lap trinh WordPress8add_filter('the_title, 'stripUnicode' );
- Ý nghĩa của đoạn code như sau:
The_title các bạn cũng biết nó dùng để lấy tiêu đề một bài viết, còn stripUnicode dùng để chuyển về dạng chữ không có dấu. mỗi khi bạn gọi the_title thì nó sẽ gọi tới cái plugin stripUnicode và thực thi cái plugin này trả về kết quả cho bạn, cái mà nó return về cũng chính là cái the_title return về.
FULL CODE
/*
Plugin Name: stripUnicode
Plugin URI: localhost
Description: Plugin remove Unicode
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
*/
if (version_compare($wp_version, "2.5", '<'))
{
die('Please update plugin');
}
function stripUnicode($str) {
if (!$str)
return false;
$unicode = array(
'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|� �|ẩ|ẫ|ậ',
'd' => 'đ',
'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
'i' => 'í|ì|ỉ|ĩ|ị',
'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|� �|ở|ỡ|ợ',
'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
'y' => 'ý|ỳ|ỷ|ỹ|ỵ',
);
foreach ($unicode as $nonUnicode => $uni)
$str = preg_replace("/($uni)/i", $nonUnicode, $str);
return $str;
}
add_filter('the_title', 'stripUnicode' );
- Ví dụ như sau: titile là “tôi là ai” thì nếu bạn không sử dụng plugin này khi bạn gọi the_title() thì nó sẽ lấy nguyên đoạn “tôi là ai”, ngược lại nếu bạn thực thi plugin này thì nó sẽ có kết quả là “toi la ai“.
- Các bạn nhìn cái function add_filter vậy nó là cái gì?
- Để tìm hiểu nó là cái gì trước tiên mình nói đên khái niệm HOOK LÀ GÌ?
Theo khái niêm của mình HOOK chính là những function mà wordpress đã viết sẵn giúp ta thao tác với CSDL hay một cái gì gì đó. chẳng hạng như the_title nó chính là một hook dùng để lấy tiêu đề bài viết và đay là một filter. Add_option dùng để them một record vào table option và đây là một action
- Ta thử so sánh với trigger trong CSDL xem sao. Trigger nó thực hiện ngầm cho một action nào đó ví dụ insert, update, delete. Với wordpress thì những hành động insert, update, delete đó chính là những cái HOOKS và cái plugin chính là cái trigger đó.
- Để xem danh sách các HOOK các bạn vào codex hoặc trang http://adambrown.info/p/wp_hooks/hook ở đó có danh sách tất cả các hook.
- ở trên mình có nhắc tới hook filter và hook action. Vậy filter là gì? Action là gì?
Nghe đến filter cũng đoán được ý nghĩa là định dạng lại một cái gì đó. ở ví dụ trên mình dùng add_filter tại vì mình dùng hook filter the_content. Coi ví dụ đó các bạn cũng hiểu được ý nghĩa cùa filter rồi phải ko nào. Nó thực hiện một thao tác chuyển đổi nào đó trước khi đưa ra màn hình hoặc trước khi insert vào db chẳng hạng.
- Còn action. Nếu hẳn các bạn biết MVC thì cũng biết action là gì rồi. nó là một hành động nào đó ví dụ như add_option dùng để thực hiện một action là insert dữ liệu.
Để hình dung hơn action là gì tôi lấy ví dụ như sau. Giả sử khi bạn xóa một bài post thì bạn muốn gửi một email thong báo đến admin là đã có một bài post bị xóa. Muốn như vậy thì ta sẽ viet một plugin gửi mail và dùng add_action để đưa nó vào hành động khi xóa đó là after_delete_post chẳng hạng. after_delete_post là một hook action các bạn có thể tìm thấy ở link tham khảo trên.
- Trên đó là những khái niêm mà tôi hiểu sao ghi vậy. Nhiều khi không đúng với định nghĩa thực tế có gì các bạn bổ sung them hoặc search
google ra rất là nhiều khái niệm
- Đọc tới đây chắc hẳn các bạn cũng hiểu sơ sơ khái niệm rồi nhỉ. Nếu mình trình bày khó hiểu thì các bạn có thể xem thêm các ví dụ dưới đây và làm theo. Các bạn sẽ hình dung được nó như thế nào :D.
Ví dụ 1: chuyển tất cả các tiêu đề bài viết thành chữ hoa. Ta sẻ sử dụng hook filter “the_title”
Hì đơn giản phải không nào. Trước tiên ta viết một plugin chuyển nhé. Ah mà hình như cái plugin chuyển thành chữ hoa có sẵn rồi thì phải. ta chỉ cần gọi nó ra đó chính là plugin strtoupper mà PHP đã cung cấp sẵn cho chúng ta.
Bước 1: tạo một file str_to_upper_title.php
Bước 2: khai báo wordpress biết đây là một plugin
/*
Plugin Name: string to upper the title
Plugin URI:
Description:
Version:
Author:
Author URI:
*/
Bước 3: code cho plugin
add_filter(‘the_title’,’ strtoupper’);
Vậy là xong rồi. các bạn thử bằng cách vào trang chi tiết bài viết xem cái tiêu đề nó bị biến dạng như thế nào nhé.
- Từ đây các bạn cũng có thể thấy đôi khi mình không cần phải viết plugin. Thay vào đó là những function có sẵn và cái ví dụ này tôi cũng đã chứng minh được rằng PLUGIN CHỈ LÀ FUNCTION
Ví dụ 2: Mỗi khi publish một bài post hay có một bài comment nào đó thì sẽ gửi mail đến tác giả của bài viết đó. Ta sẻ sử dụng hook action. publish_post và comment_post
Bước 1: tạo file send_mail_list.php
Bước 2: khai báo nơi thường trú :D
/*
Plugin Name: Send mail to Author posted
Plugin URI:
Description:
Version:
Author:
Author URI:
*/
Bước 3: viết code send mail và thực hiện hook
function mailing_list($post_ID)
{
$list = 'john@somesite.com,becky@somesite.com';
mail($list, 'My Blog Update',
'My blog has just been updated: '.get_settings('home'));
}
// Send notification with every new post and comment
add_action('publish_post', 'mailing_list');
add_action('comment_post', 'mailing_list');
- Ví dụ này mình lấy từ cuốn Ebook ra tí nữa mình sẽ đưa link cho các bạn download cuốn ebook này.
- Đến đây coi như tôi đã demo xong phần plugin wordpress. Àh con vấn đề cần lưu ý là khi các bạn viết plugin nên có thêm đoạn code kiểm tra phiên bản plugin nhé.
Kết thúc bài này hi vọng các bạn có cái nhìn tổng thể plugin wordpress
- Nếu có cơ hội tôi sẽ đề cập đến nhiều hơn nữa về Plugin trong Tutorial này. mình sẽ ko viết bài mới và viết tiếp theo bên dưới bài này luôn. Hi vọng các bạn theo dõi
- Link download Cuốn Tài liệu. Luyện Xong có thể xuất xuống núi :D
http://www.mediafire.com/?2ylwm3m2bzrn8k3
Lap trinh WordPress7Và tôi sẽ chia sẽ những kiến thức đó với mong muốn học hỏi, trao đổi kiến thức.
- Như tôi đã trình bày. Những bài tôi viết chủ yếu dành cho các bạn mời bắt đầu vào wordpress. Các bạn đã tìm hiểu qua có thể trao đổi hoặc giúp tôi viết những tut khác hay hơn và sâu hơn.
- Tôi sẽ trình bày các phương thức cơ bản nhất của plugin.
Trước tiên mình lấy một cái ví dụ nho nhỏ:
Các bạn tạo một file tên là stripUnicode.php nằm trong folder có đường dẫn như sau:
Wordpress/wp-content/plugins/stripUnicode.php
Các bạn mở file này lên và viết một số đoạn code như sau:
/*
Plugin Name: stripUnicode
Plugin URI: localhost
Description: Plugin remove Unicode
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
*/
function stripUnicode($str) {
if (!$str)
return false;
$unicode = array(
'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|� �|ẩ|ẫ|ậ',
'd' => 'đ',
'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
'i' => 'í|ì|ỉ|ĩ|ị',
'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|� �|ở|ỡ|ợ',
'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
'y' => 'ý|ỳ|ỷ|ỹ|ỵ',
);
foreach ($unicode as $nonUnicode => $uni)
$str = preg_replace("/($uni)/i", $nonUnicode, $str);
return $str;
}
- Nhìn code của function stripUnicode các bạn cũng biết chức năng nó là chuyển đổi một đoạn chữ có dấu sang không có dấu. thường dùng để tạo đường link thân thiện
- Trong đoạn comment đầu tiên chính là khai báo cấu trúc của plugin và cũng là khai báo cho wordpress biết đây là một plugin. Vậy các bạn thấy plugin có gì khác lạ không cũng bình thường nhỉ chỉ là những đoạn code bình thường nhằm thực hiện một cái gì đó chứ ko phải nó to tác như trong đầu các bạn đang suy nghĩ. Hồi xưa mình cũng vậy. mới vào nghe viết plugin wordpress nghe ghê gớm lắm nhưng thực ra chỉ là thế :D
- Khai báo tên của plugin
Plugin Name: stripUnicode
- Khai báo nguồn gốc của plugin
Plugin URI: localhost
- Mô tả sơ lược về plugin này
Description: Plugin remove Unicode
- Tác giả, version và đường link của tác giả.
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
- Trong số những thôg tin trên thì Plugin name là quan trọng nhất. các bạn không thể thiếu dòng này
- Vậy là ta đã viết xong một plugin. Các bạn vào admin -> plugins thì sẽ thấy plugin strip Unicode mà ta vừa tạo ra. Các bạn active nó sau đó ra ngoài site xem trang xem chi tiết một bài viết bất kỳ nào đó. Điều gì xảy ra …. Chưa có gì đúng không nào.
Vấn đề ở đây là ta chưa khai báo sử dụng nó. Để sử dụng nó ta dùng đoạn code sau đây đặt bên dưới function stripUnicode
Lap trinh WordPress8add_filter('the_title, 'stripUnicode' );
- Ý nghĩa của đoạn code như sau:
The_title các bạn cũng biết nó dùng để lấy tiêu đề một bài viết, còn stripUnicode dùng để chuyển về dạng chữ không có dấu. mỗi khi bạn gọi the_title thì nó sẽ gọi tới cái plugin stripUnicode và thực thi cái plugin này trả về kết quả cho bạn, cái mà nó return về cũng chính là cái the_title return về.
FULL CODE
/*
Plugin Name: stripUnicode
Plugin URI: localhost
Description: Plugin remove Unicode
Author: TheHalfHeart
Version: 1.0
Author URI: TheHalfHeart@gmail.com
*/
if (version_compare($wp_version, "2.5", '<'))
{
die('Please update plugin');
}
function stripUnicode($str) {
if (!$str)
return false;
$unicode = array(
'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|� �|ẩ|ẫ|ậ',
'd' => 'đ',
'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',
'i' => 'í|ì|ỉ|ĩ|ị',
'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|� �|ở|ỡ|ợ',
'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',
'y' => 'ý|ỳ|ỷ|ỹ|ỵ',
);
foreach ($unicode as $nonUnicode => $uni)
$str = preg_replace("/($uni)/i", $nonUnicode, $str);
return $str;
}
add_filter('the_title', 'stripUnicode' );
- Ví dụ như sau: titile là “tôi là ai” thì nếu bạn không sử dụng plugin này khi bạn gọi the_title() thì nó sẽ lấy nguyên đoạn “tôi là ai”, ngược lại nếu bạn thực thi plugin này thì nó sẽ có kết quả là “toi la ai“.
- Các bạn nhìn cái function add_filter vậy nó là cái gì?
- Để tìm hiểu nó là cái gì trước tiên mình nói đên khái niệm HOOK LÀ GÌ?
Theo khái niêm của mình HOOK chính là những function mà wordpress đã viết sẵn giúp ta thao tác với CSDL hay một cái gì gì đó. chẳng hạng như the_title nó chính là một hook dùng để lấy tiêu đề bài viết và đay là một filter. Add_option dùng để them một record vào table option và đây là một action
- Ta thử so sánh với trigger trong CSDL xem sao. Trigger nó thực hiện ngầm cho một action nào đó ví dụ insert, update, delete. Với wordpress thì những hành động insert, update, delete đó chính là những cái HOOKS và cái plugin chính là cái trigger đó.
- Để xem danh sách các HOOK các bạn vào codex hoặc trang http://adambrown.info/p/wp_hooks/hook ở đó có danh sách tất cả các hook.
- ở trên mình có nhắc tới hook filter và hook action. Vậy filter là gì? Action là gì?
Nghe đến filter cũng đoán được ý nghĩa là định dạng lại một cái gì đó. ở ví dụ trên mình dùng add_filter tại vì mình dùng hook filter the_content. Coi ví dụ đó các bạn cũng hiểu được ý nghĩa cùa filter rồi phải ko nào. Nó thực hiện một thao tác chuyển đổi nào đó trước khi đưa ra màn hình hoặc trước khi insert vào db chẳng hạng.
- Còn action. Nếu hẳn các bạn biết MVC thì cũng biết action là gì rồi. nó là một hành động nào đó ví dụ như add_option dùng để thực hiện một action là insert dữ liệu.
Để hình dung hơn action là gì tôi lấy ví dụ như sau. Giả sử khi bạn xóa một bài post thì bạn muốn gửi một email thong báo đến admin là đã có một bài post bị xóa. Muốn như vậy thì ta sẽ viet một plugin gửi mail và dùng add_action để đưa nó vào hành động khi xóa đó là after_delete_post chẳng hạng. after_delete_post là một hook action các bạn có thể tìm thấy ở link tham khảo trên.
- Trên đó là những khái niêm mà tôi hiểu sao ghi vậy. Nhiều khi không đúng với định nghĩa thực tế có gì các bạn bổ sung them hoặc search
google ra rất là nhiều khái niệm
- Đọc tới đây chắc hẳn các bạn cũng hiểu sơ sơ khái niệm rồi nhỉ. Nếu mình trình bày khó hiểu thì các bạn có thể xem thêm các ví dụ dưới đây và làm theo. Các bạn sẽ hình dung được nó như thế nào :D.
Ví dụ 1: chuyển tất cả các tiêu đề bài viết thành chữ hoa. Ta sẻ sử dụng hook filter “the_title”
Hì đơn giản phải không nào. Trước tiên ta viết một plugin chuyển nhé. Ah mà hình như cái plugin chuyển thành chữ hoa có sẵn rồi thì phải. ta chỉ cần gọi nó ra đó chính là plugin strtoupper mà PHP đã cung cấp sẵn cho chúng ta.
Bước 1: tạo một file str_to_upper_title.php
Bước 2: khai báo wordpress biết đây là một plugin
/*
Plugin Name: string to upper the title
Plugin URI:
Description:
Version:
Author:
Author URI:
*/
Bước 3: code cho plugin
add_filter(‘the_title’,’ strtoupper’);
Vậy là xong rồi. các bạn thử bằng cách vào trang chi tiết bài viết xem cái tiêu đề nó bị biến dạng như thế nào nhé.
- Từ đây các bạn cũng có thể thấy đôi khi mình không cần phải viết plugin. Thay vào đó là những function có sẵn và cái ví dụ này tôi cũng đã chứng minh được rằng PLUGIN CHỈ LÀ FUNCTION
Ví dụ 2: Mỗi khi publish một bài post hay có một bài comment nào đó thì sẽ gửi mail đến tác giả của bài viết đó. Ta sẻ sử dụng hook action. publish_post và comment_post
Bước 1: tạo file send_mail_list.php
Bước 2: khai báo nơi thường trú :D
/*
Plugin Name: Send mail to Author posted
Plugin URI:
Description:
Version:
Author:
Author URI:
*/
Bước 3: viết code send mail và thực hiện hook
function mailing_list($post_ID)
{
$list = 'john@somesite.com,becky@somesite.com';
mail($list, 'My Blog Update',
'My blog has just been updated: '.get_settings('home'));
}
// Send notification with every new post and comment
add_action('publish_post', 'mailing_list');
add_action('comment_post', 'mailing_list');
- Ví dụ này mình lấy từ cuốn Ebook ra tí nữa mình sẽ đưa link cho các bạn download cuốn ebook này.
- Đến đây coi như tôi đã demo xong phần plugin wordpress. Àh con vấn đề cần lưu ý là khi các bạn viết plugin nên có thêm đoạn code kiểm tra phiên bản plugin nhé.
Kết thúc bài này hi vọng các bạn có cái nhìn tổng thể plugin wordpress
- Nếu có cơ hội tôi sẽ đề cập đến nhiều hơn nữa về Plugin trong Tutorial này. mình sẽ ko viết bài mới và viết tiếp theo bên dưới bài này luôn. Hi vọng các bạn theo dõi
- Link download Cuốn Tài liệu. Luyện Xong có thể xuất xuống núi :D
http://www.mediafire.com/?2ylwm3m2bzrn8k3
Tạo Select Box với bộ lọc tìm kiếm bằng jQuery
Hẳn là các bạn đã quá quen thuộc với những danh sách xổ xuống (select box) thường thấy ở trên các website cho phép chúng ta lựa chọn các giá trị khác nhau. Nếu các bạn mới tập làm quen với việc thiết kế web, thì hôm nay mình xin chỉ cho các bạn một chiêu mới trong việc liệt kê danh sách, đó là thêm vào đó chức năng tìm kiếm. Những từ khóa mà các bạn nhập vào ô tìm kiếm này, sẽ lọc ra các kết quả gần với từ khóa đó nhất, từ đó giúp các bạn rút ngắn thời gian tìm kiếm giá trị phù hợp. Để hiểu rõ hơn về bài viết mà mình giới thiệu cho các bạn ngày hôm nay, các bạn có thể xem demo để hiểu chi tiết hơn về những gì mình sẽ học được.
HTML
Giả sử chúng ta có một danh sách cần liệt kê như sau :
<select style="width:300px" id="states">
<optgroup label="Alaskan/Hawaiian Time Zone">
<option value="AK">Alaska</option>
<option value="HI">Hawaii</option>
</optgroup>
<optgroup label="Pacific Time Zone">
<option value="CA">California</option>
<option value="NV">Nevada</option>
<option value="OR">Oregon</option>
<option value="WA">Washington</option>
</optgroup>
<optgroup label="Mountain Time Zone">
<option value="AZ">Arizona</option>
<option value="CO">Colorado</option>
<option value="ID">Idaho</option>
<option value="MT">Montana</option><option value="NE">Nebraska</option>
<option value="NM">New Mexico</option>
<option value="ND">North Dakota</option>
<option value="UT">Utah</option>
<option value="WY">Wyoming</option>
</optgroup>
<optgroup label="Central Time Zone">
<option value="AL">Alabama</option>
<option value="AR">Arkansas</option>
<option value="IL">Illinois</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="OK">Oklahoma</option>
<option value="SD">South Dakota</option>
<option value="TX">Texas</option>
<option value="TN">Tennessee</option>
<option value="WI">Wisconsin</option>
</optgroup>
<optgroup label="Eastern Time Zone">
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="IN">Indiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="NH">New Hampshire</option><option value="NJ">New Jersey</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="OH">Ohio</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WV">West Virginia</option>
</optgroup>
</select>
jQuery & CSS
Để có thể tạo bộ lọc trong danh sách trên, chúng ta sẽ sử dụng plugin select2, plugin này các bạn có thể tải về máy ở mục download.
Trước hết là chèn vào bên trong thẻ <head>
<link href="select2.css" rel="stylesheet"/> <script src="select2.js"></script>
Sau đó chèn thêm đoạn script sau :
<script>
$(document).ready(function() {
$("#states").select2({
placeholder: "Select a State",
allowClear: true
});
});
</script>
Thế là xong, bây giờ các bạn đã có ngay một bộ lọc tìm kiếm. Mình mong là qua bài viết này, các bạn sẽ có thêm một kinh nghiệm trong việc thiết kế web cũng như làm website hay blog của mình tiện lợi hơn cho người dùng.
Thứ Năm, 4 tháng 9, 2014
Drop Cap chữ cái đầu tiên của bài viết trên Blogger
Drop Cap là thuật ngữ chỉ việc tạo chữ đầu tiên của đoạn văn lớn hơn bình thường và lấn xuống một vài dòng trong đoạn văn. Nếu bạn thường xuyên đọc sách bào thì bạn sẽ thấy rất nhiều Drop Cap này. Hôm nay mình xin hướng dẫn các bạn đưa hiệu ứng Drop Cap phổ biến này vào mỗi bài viết tại Blogger bằng cách sử dụng CSS đơn giản.
Bước 2: Tìm đến thẻ ]]></b:skin> và thêm đoạn CSS sau vào bên trên
Bước 3: Tìm đến toàn bộ thẻ
Drop Cap chữ cái đầu tiên của bài viết trên Blogger
Bước 1: Đăng nhập vào Blogger >> Mẫu >> Chỉnh sửa HTMLBước 2: Tìm đến thẻ ]]></b:skin> và thêm đoạn CSS sau vào bên trên
p:first-letter {
display:block;
margin:5px 0 0 5px;
float:left;
color:#0033CC;
font-size:60px;
font-family:Georgia;
}
bạn có thể chỉnh sửa màu chữ, cỡ chữ, và kiểu chữ ở đoạn CSS trên.Bước 3: Tìm đến toàn bộ thẻ
Font Awesome sự lựa chọn hoàn hảo cho Blogger
Đầu tiên chắc là nhiều người sẽ không biết Font Awesome là gì, do đó mình sẽ giải thích trước. Font Awesome là thư viện cung cấp cho bạn hàng ngàn icon có thể dễ dàng tùy chỉnh mọi thứ bằng css như kích cỡ, màu, bóng đổ, v.v.. Mặc dù có nhiều ưu điểm cực kì hấp dẫn (icon nhìn tốt ở mọi kích cỡ, tốc độ tải cực lẹ,..), nhưng bạn có thể sử dụng nó một cách hoàn toàn miễn phí. Bài viết này mình xin giới thiệu đến các bạn cách sử dụng Font Awesome trên nền tảng miễn phí Blogger.
Bước 1: Cài đặt vào Blogger
Font Awesome sự lựa chọn hoàn hảo cho Blogger
Để thêm Font Awesome cũng đơn giãn như mọi thủ thuật nhỏ khác, chỉ cần một vài bước như sau:Bước 1: Cài đặt vào Blogger
Bộ nút chia sẻ qua mạng xã hội SOCIALIZE IT cho Blogger
Hôm nay, trong bài viết này mình xin chia sẻ với các bạn bộ nút mình đang sử dụng tại template mới này, trong rất ngầu và bắt mắt. Như đã nói ở rất nhiều bài viết trước, mạng xã hội có một vai trò cực kỳ quan trọng trong việc lôi kéo lượng truy cập, đây là một trong những cách điển hình giúp bài viết của bạn được phổ biến đến người dùng trên đó, từ đó lấy website của chúng ta được nhiều người biết đến hơn và rồi gia tăng lượng truy cập.
Bộ nút chia sẻ qua mạng xã hội SOCIALIZE IT cho Blogger
Công đoạn đầu tiên lúc nào cũng thế đăng nhập vào Blogger » Mẫu » Chỉnh sửa HTMLGiao diện tiện ích bài đăng phổ biến đẹp cho Blogger
Đã lâu lắm rồi blog mình chưa chia sẻ những trang trí giao diện mới cho các widget cũng như như một số thành phần nhỏ khác trên Blogger. Hôm nay mình xin chia sẻ cho các bạn giao diện khá đẹp cho tiện ích bài đăng phổ biến. Giao diện này ngoài việc sử dụng CSS để trang trí, nó phải sử dụng thêm Javascript và jQuery để tăng chất lượng cho ảnh thumbnail của tiện ích, nhưng bạn vẫn có thể yên tâm vì nó rất nhẹ không ảnh hưởng nhiều đến tốc độ tải trang.
Bạn có thể xem thủ demo tại đây: http://experimentalabt.blogspot.in/2012/03/hfh.html
Bạn có thể xem thủ demo tại đây: http://experimentalabt.blogspot.in/2012/03/hfh.html
Giao diện tiện ích bài đăng phổ biến đẹp cho Blogger
Hiệu ứng phóng to và làm mờ ảnh cho Blogger
Hiệu ứng phóng to và làm mờ ảnh là một trong những việc làm đơn giản nhưng lại khiến cho blog/website của bạn trông hấp dẫn và bắt mắt hơn trong mắt người dùng. Lúc trước mình đã có chia sẻ một hiệu ứng phóng to ảnh
và hôm nay tiếp tục, chia sẻ tiếp một hiệu ứng tương tự đang sử dụng tại blog hiện tại. Ở đây mình cũng sử dụng CSS để làm hiệu ứng này nhưng với đoạn đoạn mã chuyên nghiệp hơn.
Tiếp tục vào Mẫu » Chỉnh sửa HTML tìm đến thẻ ]]></b:skin> thêm đoạn mã sau lên bên trên
và hôm nay tiếp tục, chia sẻ tiếp một hiệu ứng tương tự đang sử dụng tại blog hiện tại. Ở đây mình cũng sử dụng CSS để làm hiệu ứng này nhưng với đoạn đoạn mã chuyên nghiệp hơn.
Hiệu ứng phóng to và làm mờ ảnh cho Blogger
Bắt đầu thì bạn đăng nhập vào trang Blogger của mìnhTiếp tục vào Mẫu » Chỉnh sửa HTML tìm đến thẻ ]]></b:skin> thêm đoạn mã sau lên bên trên
.post img:hover {
-webkit-transform: scale(1.1, 1.1);
-moz-transform: scale(1.1, 1.1);
-ms-transform: scale(1.1, 1.1);
-o-transform: scale(1.1, 1.1);
transform: scale(1.1, 1.1);
opacity: 0.5;
}
.post img {
-webkit-transition-duration: 1.0s;
/* Webkit: Animation duration; */
-moz-transition-duration: 1.0s;
-o-transition-duration: 1.0s;
}
bạn có thể thay đổi 1.1 thành tỉ lệ mà bạn muốn hình ảnh phóng to hoặc thu nhỏ như thế nào với 1 là kích cỡ mặc định của ảnh. Bạn có thể xóa bỏ opacity: 0.5; để bỏ hiệu ứng làm mờ ảnh hoặc thay đổi 0.5 thành tỉ lệ mờ ảnh mà bạn muốn.Lời kết
Thủ thuật này cũng tương tự như thủ thuật có trước đó, nhưng ở đây mình sử dụng các khác để thay đổi lại tỉ lệ vốn cho của ảnh để phóng to ảnh. Mọi thắc mắc hoặc vấn đề gì liên quan mà bạn không hiểu hoặc cần hỗ trợ bạn có thể để lại nhận xét bên dưới.description for post in blogger
Nếu bạn là một người thuyền xuyên đọc báo chí trên mạng internet, ví dụ các trang như genk.vn, kenh14.vn, ictnews.vn, và nhiều các trang khác nữa bạn sẽ thấy ở đầu bài viết sẽ có một đoạn văn bản ngắn tách biệt tại đầu bài. Nếu bạn kiểm tra kỹ sẽ thấy chính đoạn in đậm này là đoạn sẽ là đoạn mô tả trên các công cụ tìm kiếm.
Mục đích của đoạn mô tả tìm kiếm làm gì? Mục đích là câu kéo người dùng đọc bài viết của chúng ta bằng những lời lẽ kích thích. Nếu bạn viết đoạn mô tả tìm kiếm một cách hợp lý, xác xuất bạn sẽ kiếm được người dùng cao hơn tại các công cụ tìm kiếm.
Mục đích của đoạn mô tả tìm kiếm làm gì? Mục đích là câu kéo người dùng đọc bài viết của chúng ta bằng những lời lẽ kích thích. Nếu bạn viết đoạn mô tả tìm kiếm một cách hợp lý, xác xuất bạn sẽ kiếm được người dùng cao hơn tại các công cụ tìm kiếm.
Ads in blogger
Ở bài viết trước mình đã hướng dẫn các bạn cách thêm một biến nhỏ vào vòng lặp để sử dụng điều kiện một cách hiệu quả hơn, hôm nay mình sẽ ứng dụng nó để xác định vị trí của bất kì bài viết nào bạn muốn ở trang chủ, để bạn có thể thêm một số thứ như mã quảng cáo v.v.. Dưới đây là một số bài viết liên quan của nó, nếu bạn có thời gian tìm hiểu nó sẽ giúp bạn hiểu rõ hơn về bài này.
Bài viết này mình xin áp dụng những thứ đó, mình sẽ hướng dẫn các bạn chèn quảng cáo vào một vị trí bất kì trên trang chủ của Blogger.
Bài viết này mình xin áp dụng những thứ đó, mình sẽ hướng dẫn các bạn chèn quảng cáo vào một vị trí bất kì trên trang chủ của Blogger.
random post inblogger
Tiếp tục với các tiện ích liên quan đến bài viết, đã lỡ chia sẻ thì chia sẻ cho đến cùng luôn, hôm nay mình sẽ chia sẻ với các bạn tiện ích bài viết ngẫu nhiên với các tính năng tương tự với những tiện ích mà mình đã chia sẻ trước đây
- Tiện ích bài mới theo nhãn cho Blogger
- Tiện ích bài đăng mới nhất nhiều tùy chỉnh cho Blogger
- Bài viết liên quan có ngày đăng và số nhận xét
Bài viết ngẫu nhiên nhiều tùy chỉnh cho Blogger
Thêm một tiện ích HTML mới với nội dung như sau<style>
#random-posts ul{margin:0;padding:0;list-style-type:none}
#random-posts ul li{padding:10px 0}
#random-posts ul li:hover img{width:42px;height:42px;padding:0}
#random-posts img{float:left;border:1px solid #BBB;margin-right:10px;width:36px;height:36px;background:#FFF;padding:3px}
#random-posts h3{margin:0;font-size:16px}
</style>
<div id='random-posts'>
<h4>RANDOM POSTS</h4>
<ul>
<script type='text/javaScript'>//<![CDATA[
var rdp_numposts=3;
var rdp_snippet_length=150;
var rdp_info='yes';
var rdp_comment='nhận xét';
var rdp_disable='nhận xét đã tắt';
var rdp_current=[];var rdp_total_posts=0;var rdp_current=new Array(rdp_numposts);function totalposts(json){rdp_total_posts=json.feed.openSearch$totalResults.$t}document.write('<script type=\"text/javascript\" src=\"/feeds/posts/default?alt=json-in-script&max-results=0&callback=totalposts\"><\/script>');function getvalue(){for(var i=0;i<rdp_numposts;i++){var found=false;var rndValue=get_random();for(var j=0;j<rdp_current.length;j++){if(rdp_current[j]==rndValue){found=true;break}};if(found){i--}else{rdp_current[i]=rndValue}}};function get_random(){var ranNum=1+Math.round(Math.random()*(rdp_total_posts-1));return ranNum};
//]]></script>
<script type='text/javaScript'>//<![CDATA[
function random_posts(json){for(var i=0;i<rdp_numposts;i++){var entry=json.feed.entry[i];var rdp_posttitle=entry.title.$t;if('content'in entry){var rdp_get_snippet=entry.content.$t}else{if('summary'in entry){var rdp_get_snippet=entry.summary.$t}else{var rdp_get_snippet="";}};rdp_get_snippet=rdp_get_snippet.replace(/<[^>]*>/g,"");if(rdp_get_snippet.length<rdp_snippet_length){var rdp_snippet=rdp_get_snippet}else{rdp_get_snippet=rdp_get_snippet.substring(0,rdp_snippet_length);var space=rdp_get_snippet.lastIndexOf(" ");rdp_snippet=rdp_get_snippet.substring(0,space)+"…";};for(var j=0;j<entry.link.length;j++){if('thr$total'in entry){var rdp_commentsNum=entry.thr$total.$t+' '+rdp_comment}else{rdp_commentsNum=rdp_disable};if(entry.link[j].rel=='alternate'){var rdp_posturl=entry.link[j].href;var rdp_postdate=entry.published.$t;if('media$thumbnail'in entry){var rdp_thumb=entry.media$thumbnail.url}else{rdp_thumb="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMpVgtJi9FYuEjkcL1fiepTe-WSoRXZemPH9o-tGml8gBHOCLvJlccSBhffBHobelm3HQzT2UZ1j86qnoh9tZ8UAr5CdykzIhrWOBoPhei7N_Q695-VjC2AetlZcGBZ3uOL-kanczj7Q8/s1600/no_thumb.png"}}};document.write('<li>');document.write('<img alt="'+rdp_posttitle+'" src="'+rdp_thumb+'"/>');document.write('<div><h3><a href="'+rdp_posturl+'" rel="nofollow" title="'+rdp_snippet+'">'+rdp_posttitle+'</a></h3></div>');if(rdp_info=='yes'){document.write('<span>'+rdp_postdate.substring(8,10)+'/'+rdp_postdate.substring(5,7)+'/'+rdp_postdate.substring(0,4)+' - '+rdp_commentsNum)+'</span>'}document.write('<div style="clear:both"></div></li>')}};getvalue();for(var i=0;i<rdp_numposts;i++){document.write('<script type=\"text/javascript\" src=\"/feeds/posts/default?alt=json-in-script&start-index='+rdp_current[i]+'&max-results=1&callback=random_posts\"><\/script>')};
//]]></script>
</ul>
</div>
bạn chỉnh sửa lại các thuộc tính sau- rdp_numposts: số lượng bài viết
- rdp_comment: đoạn văn bản thay thế cho comment
- rdp_disable: đoạn văn bản thay thế nếu bài viết không cho nhận xét
Lời kết
Tiện ích bài viết ngẫu nhiên này thì mình trang trí cho nó giống đến 90% của Duy Phạm, ở blog của Duy Phạm cũng có chia sẽ một tiện ích tương tự nhưng mình có thử qua thì thường xuyên trình duyệt sẽ bị đứng. Do dó mình viết lại một số thứ tói ưu hơn và tương đối tốt hơn cho các bạn.
Đăng ký:
Nhận xét (Atom)
Bài đăng mới nhất



