Cách cập nhật wordpress menu có nhiều danh mục

Ví dụ: Bạn có một trang web làm bằng wordpress, có rất nhiều danh mục (wordpress large items nav menus). Làm việc với core của wordpress tại wp-admin/nav-menus.php (Appearance/Menus).

Khi update một cây danh mục lúc này core wordpress gọi truy vấn rất nhiều trường…Vì lý do bảo mật một số host share họ không cho phép thực thi một lượng truy vấn MySQL quá lớn tại một thời điểm…do đó bạn không thể thêm & cập nhật cây thư mục như hình sau:

wordpress_nav_menu

Vậy làm thể nào để giảm thiểu truy vấp MySQL vừa đủ để các host share cho phép bạn thêm & cập nhật một danh sách rất nhiều danh mục

Các bước thự hiện

Bạn tìm & đóng tất cả các trường sau:


/*
	'menu-item-description' => '',
	'menu-item-target' => '',
	'menu-item-classes' => '',
	'menu-item-xfn' => '',
*/

tại các file core của wordpress (với wordpress 3.5.0)

1, ../public_html/wp-includes/nav-menu.php

dòng 282


$defaults = array(
		'menu-item-db-id' => $menu_item_db_id,
		.........................
                ........................
		'menu-item-title' => '',
		'menu-item-url' => '',
		/*'menu-item-description' => '',*/
		'menu-item-attr-title' => '',
		/*
		'menu-item-target' => '',
		'menu-item-classes' => '',
		'menu-item-xfn' => '',
		*/
		'menu-item-status' => '',
	);


dòng 378 đến 383
//update_post_meta( $menu_item_db_id, '_menu_item_target', sanitize_key($args['menu-item-target']) );
//$args['menu-item-classes'] = array_map( 'sanitize_html_class', explode( ' ', $args['menu-item-classes'] ) );
//$args['menu-item-xfn'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['menu-item-xfn'] ) ) );
//update_post_meta( $menu_item_db_id, '_menu_item_classes', $args['menu-item-classes'] );
//update_post_meta( $menu_item_db_id, '_menu_item_xfn', $args['menu-item-xfn'] );

2, ../public_html/wp-admin/nav-menus.php

dòng 322


$post_fields = array( 'menu-item-db-id', 'menu-item-object-id', 'menu-item-object', 'menu-item-parent-id', 'menu-item-position', 'menu-item-type', 'menu-item-title', 'menu-item-url'/*, 'menu-item-description'*/ , 'menu-item-attr-title'/*, 'menu-item-target', 'menu-item-classes', 'menu-item-xfn'*/ );

3, ../public_html/wp-admin/includes/nav-menu.php

dòng 147


<!--

<label for="edit-menu-item-classes-"> <input type="text" id="edit-menu-item-classes-" class="widefat code edit-menu-item-classes" name="menu-item-classes[]" value="classes ) ); ?>" />

<label for="edit-menu-item-xfn-"> <input type="text" id="edit-menu-item-xfn-" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[]" value="xfn ); ?>" />

<label for="edit-menu-item-description-"> <textarea id="edit-menu-item-description-" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description[]">description ); // textarea_escaped ?> -->

dòng 1010


$args = array(
'menu-item-db-id' => ( isset( $_item_object_data['menu-item-db-id'] ) ? $_item_object_data['menu-item-db-id'] : '' ),
..................................
...........................
'menu-item-url' => ( isset( $_item_object_data['menu-item-url'] ) ? $_item_object_data['menu-item-url'] : '' ),
/*
'menu-item-description' => ( isset( $_item_object_data['menu-item-description'] ) ? $_item_object_data['menu-item-description'] : '' ),
*/
'menu-item-attr-title' => ( isset( $_item_object_data['menu-item-attr-title'] ) ? $_item_object_data['menu-item-attr-title'] : '' ),
/*
'menu-item-target' => ( isset( $_item_object_data['menu-item-target'] ) ? $_item_object_data['menu-item-target'] : '' ),
'menu-item-classes' => ( isset( $_item_object_data['menu-item-classes'] ) ? $_item_object_data['menu-item-classes'] : '' ),
'menu-item-xfn' => ( isset( $_item_object_data['menu-item-xfn'] ) ? $_item_object_data['menu-item-xfn'] : '' ),
*/
);

Ghi chú:
Mục đích của các thẻ /*….*/, // là đóng các trường dữ liệu không cần thiết khi wordpress admin thêm hoặc tạo nav-menus

PHP Developer
nhantam

cấu hình gửi mail cho xampp window (localhost)

Step 1: Mở file xampp\php\php.ini

tìm dòng [mail function] // line 1099
thay đổi các tham số như sau:


; For Win32 only.
; http://php.net/smtp
SMTP = stmp.gmail.com
; http://php.net/smtp-port
smtp_port = 587

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = your_mail@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

 

Step 2: Mở file xampp\sendmail\sendmail.ini

Thêm tham số:


# A freemail service example
account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from your_mail@gmail.com
auth on
user your_mail@gmail.com
password your_pass_word
port 587

Thay đổi tham số:


# Set a default account
account default : Gmail

Sau đó restart lại xampp & chạy code PHP gửi email OK.

Lưu ý: Code PHP bạn nên kết hợp với cấu hình SMTP

PHP Developer
nhantam

Cách dùng ajax post dữ liệu từ bên ngoài trang web

Có lẽ tôi nên đề tiêu đề cách gọi tiếng Anh cho dễ hiểu: “allow cross domain by AJAX”

 

Ví dụ:

1. Tôi có trang web thứ nhất là http://my_domain.com/test/

../test/ ở đây là file php hoặc hàm,..vv

2. Trang web thứ 2 là http://nhantam.com/ajax

 

Từ trang thứ 2 tôi muốn post dữ liệu tới trang thứ nhất bằng ajax…


$.ajax({ type: "GET",
url: 'http://my_domain.com/test/',
async: false,
data: param,
success: function(text){
if(text == -1) alert("Fail")
else alert(text);
}
});

 

Ở hầu hết các host: đều hiện thông báo lỗi: “Origin ‘url’ is not allowed by Access-Control-Allow-Origin …” nghĩa là nó không cho phép “allow cross domain”.

Có rất nhiều cách để khắc phục cũng như truyền dữ liệu cross domain, ở đây tôi giới thiệu cách đơn giản như sau:


<?php header('Access-Control-Allow-Origin: *'); ?>

Hãy dán dòng code trên vào file php test hoặc hàm test của trang http://my_domain.com/test/

 

PHP Developer
nhantam

 

8 thói quen của người hạnh phúc

Bạn có bao giờ tự hỏi điều gì khiến một số người luôn vui vẻ và hạnh phúc? Một điều chắc chắn là những người này có những thói quen giúp tinh thần họ luôn phấn chấn, và đôi khi, chính họ cũng không nhận ra điều đó.

Hãy cùng khám phá bí mật của những người hạnh phúc và giúp bản thân mình trở thành một trong số đó:

1. Biết ơn

Một trong những thói quen của người hạnh phúc là họ luôn cảm kích và biết ơn về những gì mình có. Bạn nên trân trọng những thứ mình đang có thay vì cảm thấy buồn bã và tiếc nuối về những thứ mình còn thiếu. Nếu bạn có thể đọc được bài báo này, và bạn có một chiếc máy tính, hoặc một cái laptop, hay một chiếc smartphone thì điều đó có nghĩa là bạn đã may mắn hơn rất nhiều người.

happy-jpg-1366710365_500x0.jpg
Ảnh:  commonbondassociation.

2. Không so sánh

Những người hạnh phúc không dành thời gian để so sánh bản thân với người khác. Cuộc sống không phải ở việc bạn sướng hơn hay khổ hơn người khác như thế nào. Nó cũng không phải là việc hàng xóm của bạn có gì; hay cô bạn thân thon thả hơn bạn như thế nào. Điều bạn cần là hãy nghĩ đến việc mình đã cải thiện được cuộc sống của bản thân như thế nào theo thời gian.

3. Lòng tốt

Hãy nghĩ đến một vài “người hạnh phúc” mà chúng ta đang nói đến ở đây. Hãy nghĩ đến những việc họ làm. Họ có đền đáp người khác, giúp đỡ cộng đồng, phục vụ ở nhà thờ, làm tình nguyện viên tại trường học? Giúp đỡ người khác thực sự sẽ khiến chúng ta cảm thấy vui vẻ và hạnh phúc.

4. Lạc quan

Quá nhiều người trong chúng ta theo chủ nghĩa hoài nghi. Chúng ta khiến cuộc sống thêm mệt mỏi. Chúng ta luôn “chờ đợi” những điều tồi tệ nhất trong mọi tình huống và từ mọi người. Không hề dễ dàng để nhìn mọi việc theo chiều hướng tích cực nếu bạn thường xuyên bị thất vọng trước mọi việc; nhưng đừng để điều đó làm nguội lạnh trái tim của bạn. Luôn có những điều tốt đẹp trên thế giới này. Bạn cần giữ cho tâm trí và trái tim mình cởi mở để đón nhận những điều tốt đẹp đó và hãy thật lạc quan. Bạn không thể hạnh phúc khi bản thân luôn nhìn vào những mặt tiêu cực của cuộc sống xung quanh.

5. Những mối quan hệ gắn bó

Những người hạnh phúc hiểu tầm quan trọng của tình bạn trong cuộc sống thực tế và tương tác xã hội. Mặc dù các phương tiện truyền thông xã hội là những công cụ rất tuyệt vời và hiệu quả giúp bạn liên lạc với bạn bè và dõi theo họ, nhưng bạn không nên coi đó là phương tiện giao tiếp duy nhất của mình với người khác. Bạn cần phải thoát ra thế giới ảo đó, hòa mình vào với những người khác, và củng cố các mối quan hệ của mình.

6. Tha thứ

Một điều vô cùng quan trọng đó là bạn phải học cách tha thứ. Những cảm xúc tiêu cực và bất mãn với người khác chỉ có “tác dụng” duy nhất là… ăn mòn hạnh phúc của bạn. Học cách buông chúng ra là bạn đang làm một điều tốt cho chính trái tim của mình. Hãy làm điều đó vì chính bản thân bạn chứ không phải vì người đã “chơi xấu” bạn.

7. Tận hưởng từng khoảnh khắc

Cuộc sống luôn ngập tràn những niềm vui nho nhỏ. Mỗi ngày, luôn có những điều vui vẻ và đáng nhớ xảy ra trong cuộc sống của bạn. Điều quan trọng là bạn phải sống chậm lại và chú ý đến những điều đó. Nếu bạn luôn bận rộn và hối hả đến mức không có một chút thời gian để chú ý đến những gì đang diễn ra quanh mình, hoặc nếu bạn luôn “dán mắt” vào tivi, máy tính, hoặc điện thoại thì chắc chắn là bạn đang bỏ lỡ rất nhiều điều tuyệt vời.

8. Luôn đặt ra mục tiêu

Những người hạnh phúc luôn có những mục tiêu để vươn tới. Đặt ra các mục tiêu, thách thức, và cam kết sẽ giúp bạn có động lực để làm việc và phấn đấu. Cố gắng làm việc để đạt được những mục tiêu đó sẽ mang lại cho bạn cảm giác tự hào; và khi bạn hoàn thành mục tiêu đặt ra thì cảm giác sẽ vô cùng tuyệt vời.

Thanh Mai (theo allwomenstalk)

ISO 639 Language Codes (Obsolete)

ISO 639: 2-letter codes

AA “Afar”
AB “Abkhazian”
AF “Afrikaans”
AM “Amharic”
AR “Arabic”
AS “Assamese”
AY “Aymara”
AZ “Azerbaijani”
BA “Bashkir”
BE “Byelorussian”
BG “Bulgarian”
BH “Bihari”
BI “Bislama”
BN “Bengali” “Bangla”
BO “Tibetan”
BR “Breton”
CA “Catalan”
CO “Corsican”
CS “Czech”
CY “Welsh”
DA “Danish”
DE “German”
DZ “Bhutani”
EL “Greek”
EN “English” “American”
EO “Esperanto”
ES “Spanish”
ET “Estonian”
EU “Basque”
FA “Persian”
FI “Finnish”
FJ “Fiji”
FO “Faeroese”
FR “French”
FY “Frisian”
GA “Irish”
GD “Gaelic” “Scots Gaelic”
GL “Galician”
GN “Guarani”
GU “Gujarati”
HA “Hausa”
HI “Hindi”
HR “Croatian”
HU “Hungarian”
HY “Armenian”
IA “Interlingua”
IE “Interlingue”
IK “Inupiak”
IN “Indonesian”
IS “Icelandic”
IT “Italian”
IW “Hebrew”
JA “Japanese”
JI “Yiddish”
JW “Javanese”
KA “Georgian”
KK “Kazakh”
KL “Greenlandic”
KM “Cambodian”
KN “Kannada”
KO “Korean”
KS “Kashmiri”
KU “Kurdish”
KY “Kirghiz”
LA “Latin”
LN “Lingala”
LO “Laothian”
LT “Lithuanian”
LV “Latvian” “Lettish”
MG “Malagasy”
MI “Maori”
MK “Macedonian”
ML “Malayalam”
MN “Mongolian”
MO “Moldavian”
MR “Marathi”
MS “Malay”
MT “Maltese”
MY “Burmese”
NA “Nauru”
NE “Nepali”
NL “Dutch”
NO “Norwegian”
OC “Occitan”
OM “Oromo” “Afan”
OR “Oriya”
PA “Punjabi”
PL “Polish”
PS “Pashto” “Pushto”
PT “Portuguese”
QU “Quechua”
RM “Rhaeto-Romance”
RN “Kirundi”
RO “Romanian”
RU “Russian”
RW “Kinyarwanda”
SA “Sanskrit”
SD “Sindhi”
SG “Sangro”
SH “Serbo-Croatian”
SI “Singhalese”
SK “Slovak”
SL “Slovenian”
SM “Samoan”
SN “Shona”
SO “Somali”
SQ “Albanian”
SR “Serbian”
SS “Siswati”
ST “Sesotho”
SU “Sudanese”
SV “Swedish”
SW “Swahili”
TA “Tamil”
TE “Tegulu”
TG “Tajik”
TH “Thai”
TI “Tigrinya”
TK “Turkmen”
TL “Tagalog”
TN “Setswana”
TO “Tonga”
TR “Turkish”
TS “Tsonga”
TT “Tatar”
TW “Twi”
UK “Ukrainian”
UR “Urdu”
UZ “Uzbek”
VI “Vietnamese”
VO “Volapuk”
WO “Wolof”
XH “Xhosa”
YO “Yoruba”
ZH “Chinese”
ZU “Zulu”

Nguồn: http://www.w3.org/WAI/ER/IG/ert/iso639.htm#2letter

PHP Developer
nhantam

Mysql cập nhật một giá trị trong chuỗi

Ví dụ: Chúng ta có bảng dữ liệu test như sau:

Test()

Table_ID Table_Name Table_Value
1 config_2 đường dẫn cấu hình trang C:\xampp\htdocs\my_web\duong_dan\..vv
2 config_2 đường dẫn cấu hình trang C:\xampp\htdocs\my_web\duong_dan\..vv

Khi chạy dưới local field Table_Value có chuỗi C:\xampp\htdocs\my_web….. Sau đó chúng ta cài đặt lên server thì lúc này đường dẫn trên không còn đúng, lúc này chúng ta cần một lệnh để cập nhật lại đường dẫn của giá trị đường dẫn trên.


UPDATE Test SET Table_Value = REPLACE(Table_Value, 
                              'C:\xampp\htdocs\my_web', '/home/httpd/my_web');

Vậy là OK. Chúng ta cũng làm tương tự với các Table khác.

Lưu ý:

- Câu lệnh trên chỉ chạy trên các table định dạng Engine là MyISAM

- Các bạn có thể tham khảo thêm tại: http://dev.mysql.com/doc/refman/5.0/en/replace.html

PHP Developer
nhantam

Categories: MySQL

PHP sắp xếp mảng tăng dần theo chỉ số mảng (key)

Ví dụ


$foo[1] = 3;
$foo[0] = 2 ;
ksort($foo);
print_r($foo);

Kết quả xuất ra như sau:


Array (
[0] => 2
[1] => 3
)

Các bạn có thể xem thêm các hàm sắp xếp mảng tại link http://php.net/manual/en/array.sorting.php

PHP Developer
nhantam

Categories: PHP Thẻ:
Follow

Get every new post delivered to your Inbox.