Tạo trang đăng bài cho thành viên wordpress không cần plugin
Tạo trang đăng bài cho thành viên wordpress không cần plugin một cách chuyên nghiêp dễ dàng tùy biến theo ý muốn.

Ưu điểm Tạo trang đăng bài cho thành viên wordpress không cần plugin :
- Dễ dàng tùy biến theo ý muốn
- không sử dụng quá nhiều trường không cần thiết khi đăng bài
- Không cần sử dụng javascript như Plugin, giúp cho Website bạn load nhẹ hơn
Nhược điểm
- Bạn cần có 1 chút kiến thức cơ bản về html,php nếu muốn hiểu hơn về cách làm trang này.
Bắt đầu nào :
Đầu tiên Bạn cần tạo 1 file đăng bài: dang-bai.php
Mình sẽ viết và giải thích từng phần. Sau đó sẽ có 1 file hoàn tất.
– kiểm tra xem thành viên đã đăng ký hay chưa, nếu đã đăng ký thì lấy thông tin thành viên, ngược lại nếu chưa đăng ký thì hiện khung đăng nhập:
<?php /* Template Name: Đăng bài */ ?> <?php if(is_user_logged_in()) { $user_id = get_current_user_id(); $current_user = wp_get_current_user(); $vnkings = $current_user->user_level; if($vnkings <= 2) { $vnstatus = "pending"; } else { $vnstatus = "publish"; } ?> // form đăng bài <?php } else { ?> <div class="formdangnhap"> <?php wp_login_form(); ?> </div> <?php } ?>
Giải thích đoạn code :
- Template Name: Đăng bài : Tạo template Đăng bài.
- if(is_user_logged_in()) { : Nếu là thành viên đăng nhập.
- $user_id = get_current_user_id(); : Lấy id của thành viên.
- $current_user = wp_get_current_user(); : Lấy tất cả thông tin thành viên.
- $vnkings = $current_user->user_level; : Lấy User level.
- if($vnkings <= 2) { $vnstatus = “pending”; } else { $vnstatus = “publish”; } : Kiểm tra user đang là quyền gì, nếu là Thành viên đăng ký thì bài viết sẽ được cho vào dạng chờ xét duyệt, nếu là Tác giả trở lên thì cho phép Public bài viết luôn.
- wp_login_form(); : form đăng nhập mặc định của wordpress
-Thêm form đăng bài : trong form này mình đã tạo theo cấu trúc của Bootstrap cho các bạn dễ tùy biến.
<div id="vnkings_postBox"> <form id="new_post" class="form-horizontal" method="post" action="" enctype="multipart/form-data"> <div class="form-group vnking_pd col-sm-12 col-md-6"> <label for="post_title">Tiêu đề</label> <input type="text" name="post_title" class="form-control" placeholder="Tiêu đề"> </div> <div class="form-group vnking_pd pd_0"> <label for="post_content">Nội Dung</label> <?php wp_editor( '', 'userpostcontent', array( 'textarea_name' => 'post_content' ));?> </div> <div class="form-group vnking_pd col-md-6"> <label for="post_content">Danh mục</label> <?php $categories = wp_dropdown_categories("echo=0&hide_empty=0&selected=0"); preg_match_all('/\s*<option class="(\S*)" value="(\S*)">(.*)<\/option>\s*/', $categories, $matches, PREG_SET_ORDER); echo "<select id='post_category' class='form-control' name='post_category'>"; foreach ($matches as $match){ echo "<option value='{$match[2]}'>{$match[3]}</option>"; } echo "</select><br />\n"; ?> </div> <div class="form-group vnking_pd col-md-6"> <label for="post_tags">Từ khóa</label> <input type="text" name="post_tags" class="form-control" placeholder="Từ khóa"> </div> <div class="form-group"> <p><img id="output_avatar"/></p> <script> var loadFile = function(event) { var output = document.getElementById('output_avatar'); output.src = URL.createObjectURL(event.target.files[0]); $('#output_avatar').addClass('active-avatar'); }; </script> <span class="btn btn-default btn-file">Hình ảnh bài viết <input class="input-file" accept="image/*" name="file" type="file" class="file" onchange="loadFile(event)"> </span> </div> <input type="hidden" name="add_new_post" value="post" /> <?php wp_nonce_field( 'post_nonce', 'post_nonce_field' ); ?> <div class="form-group"> <div class="col-sm-12" style="padding-left:0;"> <button type="submit" class="btn btn-primary">Đăng Bài</button> </div> </div> </form> </div>
Giải thích đoạn code :
Trong form này các bạn cần tạo các trường cơ bản như :
- input name=”post_title” :Nhập Tiêu đề
- wp_editor() :Tạo Form nội dung mặc định của WordPress
- wp_dropdown_categories() : Chọn danh mục cho bài viết của bạn
- input name=”post_tags” : Nhập tags bài viết
- input name=”file” : Tạo ảnh đại diện bài viết
- wp_nonce_field() : Bảo mật cho form bài viết, giúp chứng thực sự hoạt động của người dùng nếu form đăng bài gửi đi
– Kiểm tra dữ liệu và đăng bài viết
<?php if( $_SERVER['REQUEST_METHOD'] == 'POST' && !empty( $_POST['add_new_post'] ) && current_user_can('level_0') && isset( $_POST['post_nonce_field'] ) && wp_verify_nonce( $_POST['post_nonce_field'], 'post_nonce' )) { if (isset($_POST['post_title'])) { $post_title = $_POST['post_title']; } if (isset($_POST['post_content'])) { $post_content = $_POST['post_content']; } else { echo 'Please enter the content'; } if (isset ($_POST['post_category'])) { $post_category = $_POST['post_category']; } if (isset($_POST['post_tags'])) { $post_tags = $_POST['post_tags']; } $post = array( 'post_title' => wp_strip_all_tags($post_title), 'post_content' => $post_content, 'post_category' => array($post_category), 'tags_input' => $post_tags, 'post_status' => $vnstatus, 'post_type' => 'post', ); $vnkings_post_id = wp_insert_post($post); if ($_FILES) { foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$vnkings_post_id); } } echo '<div class="alert alert-success"><strong>Bạn đã đăng bài thành công!</strong></div>'; }?>
Giải thích đoạn code : :
- if( $_SERVER[‘REQUEST_METHOD’] == ‘POST’ && !empty( $_POST[‘add_new_post’] ) : Khi có hành động gửi bài viết có yêu cầu là POST
- current_user_can(‘level_0’) : thành viên cần là thành viên đăng ký
- isset( $_POST[‘post_nonce_field’] ) && wp_verify_nonce( $_POST[‘post_nonce_field’], ‘post_nonce’ ) : Tồn tại và xác nhận trường post_nonce_field (Bảo mật)
- if (isset($_POST[‘tên trường’])) : Kiểm tra đã nhập các trường bên trên hay chưa.
- $post = array() Tổng hợp các trường vào 1 mảng với cấu trúc của WordPress
- wp_insert_post($post) Tiến hành thêm bài viết với các trường đã được nhập
- if ($_FILES) – insert_attachment() Nếu tồn tại file ảnh thì thực hiện thêm vào ảnh đại diện
Như vậy chúng ta có File dang-bai.php đầy đủ như sau :
<?php /* Template Name: Đăng bài */ ?> <?php if(is_user_logged_in()) { $user_id = get_current_user_id(); $current_user = wp_get_current_user(); $vnkings = $current_user->user_level; if($vnkings <= 2) { $vnstatus = "pending"; } else { $vnstatus = "publish"; } ?> <div id="vnkings_postBox"> <form id="new_post" class="form-horizontal" method="post" action="" enctype="multipart/form-data"> <div class="form-group vnking_pd col-sm-12 col-md-6"> <label for="post_title">Tiêu đề</label> <input type="text" name="post_title" class="form-control" placeholder="Tiêu đề"> </div> <div class="form-group vnking_pd pd_0"> <label for="post_content">Nội Dung</label> <?php wp_editor( '', 'userpostcontent', array( 'textarea_name' => 'post_content' ));?> </div> <div class="form-group vnking_pd col-md-6"> <label for="post_content">Danh mục</label> <?php $categories = wp_dropdown_categories("echo=0&hide_empty=0&selected=0"); preg_match_all('/\s*<option class="(\S*)" value="(\S*)">(.*)<\/option>\s*/', $categories, $matches, PREG_SET_ORDER); echo "<select id='post_category' class='form-control' name='post_category'>"; foreach ($matches as $match){ echo "<option value='{$match[2]}'>{$match[3]}</option>"; } echo "</select><br />\n"; ?> </div> <div class="form-group vnking_pd col-md-6"> <label for="post_tags">Từ khóa</label> <input type="text" name="post_tags" class="form-control" placeholder="Từ khóa"> </div> <div class="form-group"> <p><img id="output_avatar"/></p> <script> var loadFile = function(event) { var output = document.getElementById('output_avatar'); output.src = URL.createObjectURL(event.target.files[0]); $('#output_avatar').addClass('active-avatar'); }; </script> <span class="btn btn-default btn-file">Hình ảnh bài viết <input class="input-file" accept="image/*" name="file" type="file" class="file" onchange="loadFile(event)"> </span> </div> <input type="hidden" name="add_new_post" value="post" /> <?php wp_nonce_field( 'post_nonce', 'post_nonce_field' ); ?> <div class="form-group"> <div class="col-sm-12" style="padding-left:0;"> <button type="submit" class="btn btn-primary">Đăng Bài</button> </div> </div> </form> </div> <?php if( $_SERVER['REQUEST_METHOD'] == 'POST' && !empty( $_POST['add_new_post'] ) && current_user_can('level_0') && isset( $_POST['post_nonce_field'] ) && wp_verify_nonce( $_POST['post_nonce_field'], 'post_nonce' )) { if (isset($_POST['post_title'])) { $post_title = $_POST['post_title']; } if (isset($_POST['post_content'])) { $post_content = $_POST['post_content']; } else { echo 'Please enter the content'; } if (isset ($_POST['post_category'])) { $post_category = $_POST['post_category']; } if (isset($_POST['post_tags'])) { $post_tags = $_POST['post_tags']; } $post = array( 'post_title' => wp_strip_all_tags($post_title), 'post_content' => $post_content, 'post_category' => array($post_category), 'tags_input' => $post_tags, 'post_status' => $vnstatus, 'post_type' => 'post', ); $vnkings_post_id = wp_insert_post($post); if ($_FILES) { foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$vnkings_post_id); } } echo '<div class="alert alert-success"><strong>Bạn đã đăng bài thành công!</strong></div>'; }?> <?php } else { ?> <div class="formdangnhap"> <?php wp_login_form(); ?> </div> <?php } ?>
Chưa hết, bạn cần thêm 1 đoạn Function hỗ trợ đoạn thêm ảnh đại diện bài viết ở bên trên
– Thêm đoạn function này vào file Functions.php trong thư mục Theme WordPress bạn đang sử dụng:
add_action('init', 'do_output_buffer'); function do_output_buffer() { ob_start(); } function insert_attachment($file_handler,$post_id,$setthumb='false') { // check to make sure its a successful upload if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false(); require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_upload( $file_handler, $post_id ); if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); return $attach_id; }
– Cuối cùng là bạn vào Trang quản trị > Trang > Tạo trang > Đăng bài (chọn template là Đăng bài):
Sau đó bạn có thể xem kết quả với link page vừa tạo
Demo đăng bài vnkings : https://vnkings.com/dang-bai.html
Với các bước bên trên bạn đã tạo được cho mình 1 trang đăng bài viết cho thành viên ở WordPress mà không cần sử dụng đến Plugin
Chúc các bạn thành công!
Bài liên quan
- Đưa trình soạn thảo WordPress 5.0 về phiên bản cũ không dùng plugin
- Thêm chức năng lọc theo Meta Fields trong Dashboard WordPress
- Sửa lỗi không hiển thị Page Template để chọn khi tạo Trang ở WordPress version 4.9
- Thêm reCAPTCHA vào form đăng nhập đăng ký WordPress
- Quản lý thời gian hoạt động cho Vip Member trong WordPress
- Hiển thị bài viết mới theo Category trong WordPress
- Tự tùy biến trang Single theo Category trong WordPress
- Tạo giao diện khác nhau cho từng Category trong WordPress
vào đâu để lập form này hả anh, em tạo trang mới vẫn không thành công anh ạ
Đầu tiên bạn tạo 1 template là đăng ký, sau đó thêm đoạn code kia vào. tiếp đến vào tạo trang chọn template đăng ký kia là xong nhé
—————————————–
Mình vừa teamview cho bạn rồi nhé
bác cho em ? sao em bị lỗi không lấy ra chuyên mục được vậy ạ Warning: preg_match_all(): Unknown modifier ‘o’ in C:\xampp\htdocs\oto.com\wp-content\themes\accelerate\page-templates\dangbai.php on line 34 lỗi này là lỗi gì nhỉ bác ơi
Bạn Show dòng 34 lên được không ?
em cũng bị lỗi như này bác cho em ? sao em bị lỗi không lấy ra chuyên mục được vậy ạ Warning: preg_match_all(): Unknown modifier ‘o’
và dòng đó của em là bị cái này ạ
<?php $categories = wp_dropdown_categories("echo=0&hide_empty=0&selected=0");
preg_match_all('/s*(.*)s*/’, $categories, $matches, PREG_SET_ORDER);
echo “”;
foreach ($matches as $match){
echo “{$match[3]}”;
}
echo “n”;
?>
Có cách cho họ add thư viện hình ảnh luôn ko hè!
Nếu bạn muốn upload nhiều hình thì có thể dùng cách này:
phần input upload bạn thay bằng:
Tiếp theo bạn cần đoạn function này để xử lý ảnh upload lên:
Cuối cùng là đoạn check nếu có file ở dưới đoạn input :
Chúc bạn thành công
Giờ em muốn lấy ra danh sách các hình ảnh đã upload thì phải làm sao nhỉ?
Bạn có thể dùng cách này:
a cho e xin full code cái dang-nhap.php đc k e copy toàn báo sai @@
Bạn có dùng Teamview không, mình giúp bạn tạo trang đăng nhập.
Vì cấu trúc trang bạn và trang mình khác nhau nêu có đưa bạn cả file cũng không hợp HTML/CSS
Chào Bạn, bài viết rất hay. Xong theme của mình CSS không đúng nên bị vỡ bể hết, mặc dù các thuộc tính có hiển thị. Bạn có thể Edit bằng team view cho mình được không ? Cảm ơn và có hậu tạ bạn nhé. Số của mình 0968.022.948
Bạn cho mình hỏi chút được không vậy. Mình muốn tạo 1 page đăng bài cho thành viên nhưng trong bài đăng yêu cầu có hình ảnh, kích cỡ chính xác và bắt buộc kích cỡ như vậy mới được đăng. Thứ hai là phần quản lý sét duyệt. VD như đăng bài xong mình phải duyệt bài mới cho đăng. Bạn có thể giúp mình được không vậy. Thanks !
Vấn đề 1 :
Bạn có thể dùng 1 đoạn javascript để check kích cỡ và dung lượng:
Vấn đề 2
bài viết trên mình có 1 đoạn check user : nếu là tác giả trở lên thì cho phép bài publish luôn, còn là thành viên đang ký thì sẽ dạng chờ xét duyệt, bạn cũng có thể sửa nó để tác giả cũng cần duyệt :
Mong nó giúp được bạn!
Cám ơn bạn, những nội dung của bạn rất hữu ích, mình muốn làm quen với bạn có thể pm qua sky hay fb không nhỉ. Nếu bạn trao đổi textlink có thể ngó qua site mình 😀 taplamseo.com 🙂
Rất cám ơn về sự giúp đỡ của bạn.
Ok cảm ơn ý kiến của Bạn 🙂
if ($_FILES) {
fix_file_array($_FILES[$name]);
foreach ($_FILES[$name] as $file => $fileitem){
$newupload = insert_attachment($fileitem,$real_post_id);
}
}
Đoạn này chèn dưới input cụ thể là chỗ nào cậu?
Phần danh mục nó cũng không hiện Category ra nữa
Bạn thay cho đoạn mình khoanh vàng trên ảnh nhé

$real_post_id
bạn thay bằng$vnkings_post_id
https://www.facebook.com/tuanthuy1902 anh ơi add Fb em hỏi chút ạ
thanks anh ạ
Đã add bạn nhé 🙂
bài viết rấy hay và chi tiết. hy vọng sẽ có thêm nhiều bài hay như thế này… nếu có thể làm web shop, tin tức = wordpress không sử dụng plugins thì quá hay
Cảm ơn ý kiến của bạn, Vnkings.com sẽ cố gắng gửi tới các bạn những bài hay hơn nữa
Nếu muốn có chỗ lưu tạm để duyệt các bài đăng nào hợp lệ để đưa lên thì phải làm sao. Mong vnking chia sẻ thêm
Trong đoạn code trên bạn để ý đoạn:
if($vnkings <= 2) { $vnstatus = "pending"; } else { $vnstatus = "publish"; } // nếu bạn muốn tất cả mọi người đăng cần lưu chờ duyệt thì bạn đặt số 2 thành số 10 bạn nhé
Hehe, số 100 cứ nah
😛
Warning: preg_match_all(): Unknown modifier ‘o’ in C:\xampp\htdocs\oto.com\wp-content\themes\accelerate\page-templates\dangbai.php on line 34 lỗi này là lỗi gì nhỉ bác ơi
Cám bài viết chi tiết của ad. trước mình có nghĩ tới việc tạo trang đăng bài nhưng là sử dụng plugin. Nhung thấy cái giao diện của plugin xấu quá. Sẽ áp dụng thử cách này của bạn.
Chúc bạn thành công! 🙂
Chưa hiểu lắm, làm theo mà sao không có phần template Đăng Bài khi tạo trang mới !
Cũng chưa thấy mối liên hệ giữa file dang-bai.php với funtion ?
Giải thích cụ thể hơn được không bạn ơi ?
Vấn đề 1:
Sau khi bạn tạo 1 file php có nội dung như sau :
Thì trong phần chọn template page sẽ có thêm 1 cái là : Đăng bài
Bạn xem lại xem trong file dang-bai.php đã có đoạn đó chưa nhé.
Vấn đề 2:
Mối liên hệ giữa dang-bai.php với funtions:
Bạn có thể thấy trong file dang-bai.php có 1 đoạn là
Và 1 đoạn chèn vào funtions để xử lý cho yêu cầu insert_attachment là:
nếu up kiểu này thì nó sẽ có 2 ảnh trên thư viện, up ảnh đại diện thì sẽ có 1 cái và ảnh thư viện 1 cái nữa.
có cách nào để up 1 ảnh dùng cho cả 2 k ad
Ý bạn là trong bài viết bạn cũng có 1 ảnh như ảnh đại diện?
co cach nao de upload anh vao bai viet ko admin
Có đó bạn. mặc định form mình tạo bên trên đã có upload ảnh vào bài viết

lỗi này là sao anh nhỉ>
http://i.imgur.com/zUBbPkq.png
Đây là cảnh báo, bạn thử bật debug = true ở config.php xem nó lỗi ở đâu nhé ?
Tạo xong rồi up mấy file này lên đâu bạn?
Them mình không có thư mục page-templates ?
Bạn up thẳng vào thư mục Theme đang sử dụng nhé.
ngang bằng với các file index.php, functions.php, header.php, footer.php
https://www.facebook.com/profile.php?id=100007171425454
anh ơi add friends em hỏi chút được không ạ 🙂 e không biết tạo teamplate đăng kí
https://www.facebook.com/profile.php?id=100007171425454
anh ơi add friends em hỏi chút được không ạ ? e không biết tạo teamplate
khi click vào upload media nó bị lỗi giao diện. do k load được file load-styles.php ngoài front end. Có cách nào không a
Bạn kiểm tra trên header đã có hàm wp_head() chưa nhé
sao không nhập được
Đối với web php thì mấy chỗ mặc định của wp sửa sao v
Chưa hiểu câu hỏi của bạn?
ý là cái này chỉ dùng cho web wp thôi ạ…còn đối vs web xài mã php thường thì sao
Tức là đối với web không xài wp á bác
Nếu mình muốn có thêm form để nhập các thông tin thêm như metaboxs thì làm sao nhỉ 😀
Bạn có thể thêm các input vào:
Tiếp đến trong phần update dữ liệu.
Tìm:
Thêm vào sau:
Chúc bạn thành công!
Admin cho mình hỏi, muốn tạo đăng nhập fb như vnkings thì làm ntn, mong được giúp.
Bạn sử dụng plugin này nhé: WordPress Social Login.
Khi cài đặt nó sẽ có hướng dẫn cụ thể để bạn lấy được APP ID và APP Secret.
Nếu dùng plugin này thì thành viên có đăng bài dc ko admin?
Bạn ơi mình không muốn đăng lên post, mà mình muốn đăng lên Custom post thì phải như thế nào Ad.
Thì ở Post type bạn đặt là post type của bạn là được mà
Mình tạo xong tất cae đều ok nhưng bị lỗi thế này ở chỗ chọn danh mục
Warning: preg_match_all(): Unknown modifier ‘o’ in /home/xxx/wp-content/themes/xxx/dangbai.php on line 40
AD cho hỏi mình muốn dùng cái này cho Custom Post Type được không bạn
dùng được bạn ạ, phần post_type bạn chỉ cần thay bằng Post_type của bạn là được.
mình làm theo mà khung soạn thảo hiển thị trắng chứ ko có các shortcode bạn ơi
Bạn kiểm tra xem Theme của bạn ở Header có:
và footer có:
Chưa nhé, đây là các hàm lấy ra các file css, js, ajax hỗ trợ cho Form.
Sao khi đăng bài nó không hiển thì bài viết vào chuyên mục được chọn mà nó toàn đăng vào chuyên mục mặc định là sao bạn
Bạn kiểm tra
Có đúng không nhé
Những bạn bị lỗi không tương thích với hàm preg_match_all():
Thì thay code chỗ category:
Thành:
Cảm ơn các bạn đã luôn ủng hộ Vnkings.com
tại sao nút add media của em lại không hoạt động ạ?
Em xem trên File Header.php có:
File Footer.php có:
Kiểm tra xem có chưa nhé.
Đây là các các hàm lấy ra các đoạn script hỗ trợ mặc định của wordpress cho Front-end.
Bạn ơi, lúc mà mình k chọn ảnh đại diện, vẫn tạo đc bài viết, nhưng mà vào trong dashboard thì lỗi chỗ hình đại diện, nên cái khung soạn thảo lỗi theo, còn chọn ảnh đại diện lúc post thì k có lỗi j hết
Nếu bạn muốn trường đó là trường bắt buộc nhập thì ở phần input file:
Bạn thêm đoạn này vào nhé:
kết quả sẽ là:
Sau khi hoàn thành, ai viết bài ở web bạn sẽ bắt buộc phải up ảnh đại diện, nêu không nó không cho đăng bài.
Cho em hỏi là nếu post của em có custom taxonomies và custom fields thì làm sao để có thể cho người dùng nhập vào các trường này ở trang đăng bài được vậy ad?
Chào bạn,
Mình làm giống bạn thì đăng bài được. Nhưng nếu đăng nhập vào bằng user có quyền là thành viên đăng ký thì lại không hiện ra mục thêm media để chèn ảnh vào bài viết. Làm sao để cấp quyền cho user trong nhóm thành viên đăng ký cũng chèn ảnh được.
2/ Trong mục quản lý media, có cách nào cấm người dùng xoá ảnh không phải do mình đăng được không, vì có những user khác lỡ tay xoá mất hình thì bài cũ sẽ bị mất hình đăng.
Cám ơn
bài viết rất bổ ích. thank ad
có cách nào tạo trang đăng bài giống thế này ko nhỉ. dienthoaibmt.com
Warning: preg_match_all(): Unknown modifier ‘o’ in /home/u918119383/public_html/wp-content/themes/lighthouse/dang-bai.php on line 35
em bị lỗi này thì sửa sao được ạ
Code dong 35:
preg_match_all(‘/s*(.*)s*/’, $categories, $matches, PREG_SET_ORDER);
Em xem web em đã tạo các danh mục chưa?
đã có danh mục rồi ạ, nó hiện danh mục rồi nhưng vẫn có thông báo đó
Ảnh màn hình https://drive.google.com/file/d/0B_RVnbM0MdT5NHJyQTJlSmhqSFk/view?usp=sharing
ở config.php em có bật debug = true không, nếu bằng true thì e sửa lại thành false nhé.
đang là false rồi ạ, nhưng sao vẫn bị ạ
get_queried_object(); wp_editor( $post_obj->post_content, ‘userpostcontent’, array( ‘textarea_name’ => ‘post_content’ ));?>
Đoạn này em thêm vào rồi, nhưng các nút soạn thảo không hiển thị, rồi nút thêm hình ảnh cũng không hoạt động là sao vậy ạ https://prnt.sc/fampv0
Em kiểm tra xem file header.php có:
File footer.php có
không nhé, đây là các hàm lấy thư viện css và js hỗ trợ cho các chức năng ngoài Front end.
Là thành viên đăng kí thì không hiện nút add media a ơi..làm sao để thành viên củng add được ảnh cho bài viết ạ.
Bạn để ý dòng này:
Thêm:
Hoàn chỉnh:
A ơi giờ e muốn chỗ thêm ảnh hiển thị cho bài viết thì lấy ảnh từ thư viện media wordpress để giảm bớt trường hợp ảnh đã có trong thư viện rồi thì làm sao ạ
mình thêm ‘media_buttons’ => true mà vẫn ko lên được add à, dưới local ko thêm thì vẫn chạy bình thường , lên host thì mất
Bạn xem code đưa lên đã chuẩn chưa, hoặc kiểm tra xem host có chặn hàm gì của bạn không!?
add cho mình hỏi với , cái nút thêm media của mình ở dươi local thì hiện , mà lên host thì nó lại mất hẳn luôn soi trình duyệt cũng ko thấy !…
anh cho em hỏi với ạ, llỗi chưa đăng nhập mà nó vẫn hiện bảng đăng bài thì sửa sao được ạ.
https://drive.google.com/file/d/0B_RVnbM0MdT5T3BlYWxPY05QM1E/view?usp=sharing
Em thêm hàm
Như vậy chỉ những người đăng nhập mới xem được bảng đăng bài của em.
Warning: preg_match_all(): Unknown modifier ‘o’ in C:\xampp\htdocs\~ducn\easyit\wp-content\themes\wplms\dang-bai.php on line 26
Lỗi này fix sao vậy AD ơi
line 26 code nó ntn preg_match_all(‘/s*(.*)s*/’, $categories, $matches, PREG_SET_ORDER); đang cần gấp lắm AD giúp mình với
Bạn thử up lên Host xem còn bị không, mình test bên mình hoàn toàn bình thường, không báo lỗi như trên?
Bạn ơi mình dùng Kleo theme có các template sẵn, mình thêm file php vào nhưng không thấy mục chọn template này trong page, bạn giúp mình với
Chào bạn,
Bạn chú ý cần đặt đoạn này vào đầu của file bạn nhé:
Chào anh,
Hiện em đang sử dụng đoạn code này để tự động thêm link cho từ khóa.
function auto_add_affiliate_links($text){
$replace_words = array(
‘WordPress’ => ‘Blog thủ thuật WordPress‘,
‘Plugin’ => ‘Cài đặt Plugin‘,
‘Theme Free’ => ‘Theme miễn phí‘
);
$text = str_replace(array_keys($replace_words), $replace_words, $text);
return $text;
}
add_filter(‘the_content’, ‘auto_add_affiliate_links’);
add_filter(‘the_excerpt’, ‘auto_add_affiliate_links’);
Nhưng nó chỉ áp dụng cho phần content mặc định thôi. Bài viết của em có sử dụng cả các post meta nữa. Giờ làm sao để áp dụng được cho nó nhỉ?
em thử thêm dòng sau thì bị lỗi.
add_filter(‘get_post_metadata’, ‘auto_add_affiliate_links’);
Cho phép thành viên truy cập một plugin nào đó thì đc không admin nhỉ
Bạn có thể tạo thêm 1 Group Member mới rồi phân quyền Plugin cho thành viên đó bạn ạ.
https://codex.wordpress.org/Roles_and_Capabilities#edit_plugins
Add ơi nếu giờ em thêm option tùy chọn định dạng trong bài viết thì làm thế nào ạ ? Mong add giúp em
Bạn tạo một Meta Field cho Post là: dinh_dang
Trong file đăng bài bạn tạo thêm 1 đoạn để chọn định dạng:
Phần xử lý bạn thêm đoạn này:
Chào bạn bạn có thể hướng dẫn kỹ hơn cho mình dc ko minh vẫn chưa làm được
Bạn làm đến bước nào mà gặp khó bạn nhỉ?
Bạn ơi cho mình hỏi dùng cho woocommecer thêm phần giá , link download dc ko bạn
Bạn có thể thêm các input vào:
Tiếp đến trong phần update dữ liệu.
Tìm:
Thêm vào sau:
Chúc bạn thành công!
bạn ơi cho mình hỏi làm sao đưa sản phảm của nó vào danh mục sản phẩm trong woocommecer ? bạn giúp mình nhé
Xin chào, mình muốn dùng hàm wp_insert_post() để đăng bài, là mình tự đăng, không phải cho thành viên khác đăng và không cần form nhập liệu, chương trình php sẽ tự get dữ liệu từ chỗ khác, ví dụ mình tạo trang là postbai.php, vậy trang này cần đặt ở thư mục nào để chạy được, cần include thêm file gì của wp… bạn chỉ mình với, mong sớm nhận được câu trả lời
Chào bạn, Bạn có thể tạo 1 custom page template.
Ví dụ bạn tạo 1 file postbai.php trong thư mục theme, bạn chỉ cần thêm đoạn đầu là
Sau bạn vào Trang quản trị > Page > Tạo page, rồi chọn template là: Đăng bài
Như vậy là xong.
E dùng metabox type= image_advanced để đăng nhiều hình ảnh làm sldier. Giờ ở trang đăng bài phải làm thế nào để khi người dùng đăng hình ảnh thì trong metabox của e cũng hiện những hình ảnh đó vậy anh?
Anh rất ít dùng Plugin nên anh chưa xử lý với Plugin đó bao giờ em ạ.
vậy làm theo cách đăng nhiều hình ảnh của anh thì có cách nào hiển thị nó trong wp_admin không ạ? giống như đăng ảnh đại diện ở trang đăng bài thì phía trong nó hiện ảnh đại diện đó
bạn ơi mình bị lỗi chỉ có html ko thôi thì sửa thế nào vậy?
Mình làm y chang và đã post được bài. Nhưng bị lỗi nút Add Media click vào ko hiển thị hộp thoại để add media giống trong admin (nghĩa là click vô Add Media nhưng ko có hành động gì xảy ra)
Đã có wp_head và wp_footer trong file header.php và footer.php
Mong bạn giúp đỡ mình fix lỗi này với ạ
Chào bạn, bạn thử ấn F12 trình duyệt, rồi sang tab Console, bạn ấn thử nút Media xem Console bắn ra lỗi gì nhé.
Mình xem thì nó bị lỗi gì đó liên quan tới wp_head(), nếu bỏ cái wp_head đi thì nó chạy ngon lành, vì thế mình làm theo kiểu copy hết file header qua file post-bai luôn ko sài get_header ở file post-bài nữa thì chạy ngon lành rồi. Cảm ơn bạn nha !
Ok Bạn, chúc bạn thành công!
À cái ô từ khoá mình muốn nó hiện thêm phần những từ khoá đã có để thành viên click vô nó tự add từ khoá đó vô thì làm thế nào hả bạn
M làm theo mà phần Danh Mục chẳng hiển thị ! Có ai rành về code giúp m với ! Ngoài danh mục theo dạng cataloge thì có thể lấy theo taxonomy của customer post không ?
Bạn ơi. Có thể thêm custom field vô trang đăng bài được không nhỉ ?
Hoàn toàn được bạn nhé.
Tks bạn. Dùng Code gì để gọi ra vậy ạ ?
hi bạn, cho mình hỏi về đoạn code add thư viện ảnh, mình làm theo hướng dẫn của bạn rồi nhưng k upload hình đc.
Chào bạn, nó có báo lỗi gì không bạn nhỉ, ngoài ra bạn xem quyền hiện tại khi đăng bài là quyền thành viên đăng ký hay tác giả?
Chào anh. Khi em bấm đăng bài thì lỗi ra như vậy là sao vậy anh
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\wordpress\wp-content\themes\twentyseventeen\functions.php on line 596
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\wordpress\wp-content\themes\twentyseventeen\dang-bai.php on line 103
Bạn đã đăng bài thành công!
functions.php on line 596
dang-bai.php on line 103
Em show nội dung ở 2 đoạn này lên đây xem sao.
if ($_FILES) {
fix_file_array($_FILES[$name]);
foreach ($_FILES[$name] as $file => $fileitem){
$newupload = insert_attachment($fileitem,$real_post_id);
}
}
function fix_file_array(&$files) {
$names = array(
‘name’ => 1,
‘type’ => 1,
‘tmp_name’ => 1,
‘error’ => 1,
‘size’ => 1
);
foreach ($files as $key => $part) {
// only deal with valid keys and multiple files
$key = (string) $key;
if (isset($names[$key]) && is_array($part)) {
foreach ($part as $position => $value) {
$files[$position][$key] = $value;
}
// remove old key reference
unset($files[$key]);
}
}
}
Em áp dụng cái upload nhiều ảnh à?, em đã đặt đúng thẻ input và như code này chưa.
https://wordpress.vnkings.com/tao-trang-dang-bai-cho-thanh-vien-khong-can-plugin-wordpress.html#comment-34
Anh ơi cho em hỏi, em thêm 1 trường vào form vi dụ input cho ng dùng nhập địa chỉ vậy làm sao để hiện trường địa chỉ ng dùng vừa nhập vào bai viết của họ ạ, thanks anh
Bạn có thể thêm các input vào:
Tiếp đến trong phần update dữ liệu.
Tìm:
Thêm vào sau:
Như vậy bạn đã lưu được thêm trường địa chỉ cho Post.
Sau này nếu bạn muốn hiện địa chỉ trong post đó thì vào file single.php thêm đoạn này vào chỗ bạn muốn hiển thị địa chỉ:
Chúc bạn thành công!
Bác cho em hỏi ở cái danh mục đó nó show toàn bộ danh mục ra bây giờ em chỉ muốn show danh mục cha thì code thế nào ạ mong bác giúp. thank bác
Bạn để ý đoạn:
Bạn sửa thành:
Nếu muốn danh mục con tiếp theo thì chỉnh depth=2 hoặc 3,4 tùy bạn (Mặc định depth=0 lấy toàn bộ cấp của danh mục).
AD ơi cho mình hỏi mình add wp_editor vào nhưng nó k hoạt động chỉ cho nhập văn bản thuần thôi bạn ạ !
Chào bạn, bạn thử kiểm tra trong function của bạn xem có đoạn nào custom wp_editor không, nếu để mặc định như bài hướng dẫn này thì trình soạn thảo trực quan sẽ mặc định là True.
anh ơi sao em bấm vô chữ thêm media nó không thêm vậy
Em kiểm tra xem file header và Footer của em có 2 đoạn này chưa
anh ơi. cái phần nội dung bài viết, không nhập gì nó vẫn cho post bài. vậy có cách nào fix không anh
anh ơi , em tạo file đăng bài để trong theme rùi nhưng lúc ấn nút tạo bài viết trên trang chủ nó load em thấy đúng link ra trang tạo bài viết rùi mà nó lại báo là trang không tồn tại
Chào em, em có thể chụp lại màn hình các trang, các bước em đã làm được không?
Anh ơi giúp em với em làm như anh nhưng nó không nhận giao diện ạ + Ấn vào thêm media cũng không được ạ. Link ảnh đây a xem hộ em với: https://drive.google.com/drive/folders/1cjvUhvMS5uIuscXYzMx7tM1vuSGTsRMF?usp=sharing
minh chua hieu code lam ban utraviel cho minh trang dang nhap dc ko, b o dau minh co the cafe han huyen noi chuyen
Bài rất bổ ích ạ. Nếu như mà mình muốn đăng bài viết theo taxonomy thì thay đổi như nào ạ?
bạn ơi cho mình hỏi, code add thư viện ảnh mà bị lỗi thì làm sao vậy ạ?
Hay quá Vnfaster ơi, nhưng cho mình hỏi: tại sao ko sử dụng luôn thanh công cụ mặc định của wp khi đăng nhập (wp-admin/post-new .php) để đăng bài mà phải tạo ra trang “đăng bài” này?
Ad cho hỏi. Có cách nào thay đổi cái form đăng bài bằng input không nhĩ?. Mình chỉ muốn làm một trang cho thành viên vào viết câu hỏi thôi, không cần nhiều về chức năng soạn thảo. Với lại chỉ định chuyên mục mặc định luôn
Được bạn,
Bạn có thể thay đoạn:
Thành:
Trước tiên thì mình cảm ơn bạn đã hướng dẫn rất nhiệt tình, mình đã áp dụng và đã thành công, tuy nhiên có 2 chổ mình thấy vẫn chưa được hài lòng mong bạn chỉ giáo.
1. Tại sao khi để trống các trường rồi gửi bài viết thì vẫn hiển thị thông báo bạn đã đăng bài thành công?.
2. là sau khi đăng bài thành công mà nhấn nút tải lại trình duyệt là nó lại gửi lại nội dung lúc nẫy mình đăng thêm 1 lần nữa, có cách nào để khi tải lại trình duyệt là cái box đăng bài này nó không gửi tiếp không?
ad ơi cho hỏi với, mình muốn cho thành viên đăng bài đăng con trên bài đăng này thì phải làm sao ạ?
Chào bạn,
Bạn có thể thêm trường
post_parent
trongwp_insert_post
, Ví dụ:Trong đó:
Chính là phần bạn cần thêm vào.
WOW. bạn viết bài hày quá hay luôn, mình áp dụng thành công rồi, nhưng sao nếu tác giả là người viết bài thì không cho phép tải lên hình ảnh để chèn vào bài viết nhĩ “Xin lỗi, bạn không được quyền đính kèm tập tin vào bài viết này.”
Chào bạn, bạn đăng bài ở User có nhóm quyền gì?
E đã test với quyền tác giả, cộng tác, thành viên thì không được, nó báo lỗi Xin lỗi, bạn không được quyền đính kèm tập tin vào bài viết này.” Còn biên tập và admin thì upload được. Mong nhận được giúp đỡ từ anh ạ.
Đó là do chưa cấp quyền cho nhóm thành viên đó, bạn có thể thêm đoạn này vào file functions.php
Chào bác, e cũng đang gặp lỗi này. Quyền Thành viên, cộng tác viên và tác giả đều không cho phép upload file. Bác fix được rồi thì chỉ giúp em với ạ.
Bạn thêm đoạn code sau vào file functions của theme nha.
if ( current_user_can('subscriber') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$subscriber = get_role('subscriber');
$subscriber->add_cap('upload_files');
}
Thay subscriber thành nhóm user mà bạn muốn thêm quyền upload file. Sẽ hiển thị button thêm media ở trang đăng bài.
Cảm ơn bạn đã hướng dẫn rất nhiệt tình. Cho mình hỏi ở đoạn code wp_editor để gọi trình soạn thảo wordpress ra, trong trường hợp mình sử dụng Ckeditor thì có được không? và phải sửa code như thế nào. Cảm ơn bạn nhiều
Mình add thành công rồi mà lỗi css ko nhận trong bố cục của theme gốc. Giờ làm sao để nó nằm trong theme như show 1 bài viết bth và có widget right(cột phải)
Chào bạn, mình dựng bố cục theo Bootstrap cho phù hợp với các Theme phổ biến hiện nay, Bạn có thể CSS lại form cho phù hợp với giao diện của mình, nếu bạn không thể tự làm có thể gửi tin nhắn tại Page để mình hỗ trợ trực tiếp.
Anh ơi giúp em với ạ, cảm tạ anh luôn. Em làm được hết những gì anh viết ở trên rồi, nói chung là chạy ngon lành cành đào luôn. Nhưng mà trang web của em có một số danh mục không cho thành viên viết vào, vậy chổ chọn danh mục để đăng bài ý có cách nào mình chỉ hiển thị những danh mục mà mình muốn cho thanh viên viết vào không anh nhĩ. như vậy thì code như thế nào hả anh?. Em xin cảm tạ anh rất rất nhiều luôn
Chào em, ở trong
wp_dropdown_categories
Có một thuộc tính nữa là:
exclude
để bỏ danh mục không muốn khi dùng hàmwp_dropdown_categories
Ví dụ:
Trong đó 10 chính là ID danh mục em không muốn show ra.
thank anh em làm được rồi ạ. cảm ơn anh nhiều
Chào anh. anh có thể hướng dẫn chi tiết thêm dùng cái này cho Custom Post Type: san-pham có taxonomy: danh-muc và có sử dụng ACF thì gọi ra như nào ạ
Chào bạn,
Thêm bài vào Post type: san-pham
Bạn thay
Thành
Cho bài vào taxonomy: danh-muc
Bạn thêm đoạn này vào dưới phần xử lý tạo bài:
Khi gọi ra thì bạn dùng query này để gọi ra các bài của post type và taxonomy đó:
Bạn còn cách úp album hình ảnh khác không ? Cách ở phần bình luận của hạn nó không nhận úp hình lên được rồi, rảnh giúp mình với hen !
Bạn cho mình hỏi là phần này còn xử lý gì thêm không ? vì làm theo các bước mà vẫn không úp hình lên được thư viện của web. Nếu không làm gì thêm thì bạn kiểm tra lại là code đúng chưa mình sợ bạn thiếu chổ nào đó.
function fix_file_array(&$files) {
$names = array(
'name' => 1,
'type' => 1,
'tmp_name' => 1,
'error' => 1,
'size' => 1
);
foreach ($files as $key => $part) {
// only deal with valid keys and multiple files
$key = (string) $key;
if (isset($names[$key]) && is_array($part)) {
foreach ($part as $position => $value) {
$files[$position][$key] = $value;
}
// remove old key reference
unset($files[$key]);
}
}
}
function insert_attachment($file_handler,$post_id,$setthumb='false') {
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_sideload( $file_handler, $post_id );
if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id);
return $attach_id;
}
Bây giờ em muốn tạo thêm 3 nút button bên cạnh Nút đăng bài:
1. Nút hủy bỏ
2. Nút Xem thử
3. Nút lưu nháp
Thì Custom nó như thế nào vậy anh. Mong anh giúp đở
function add_output( $post )
{
$ten_download = get_post_meta( $post->ID, '_ten_download', true );
$link_download = get_post_meta( $post->ID, '_link_download', true );
wp_nonce_field( 'save_thongtin', 'thongtin_nonce' );
// Tạo trường Link Download VIDEO
echo ( 'VIDEO ' );
echo ('');
echo ( 'LINK TẢI' );
echo ('');
}
Em có tạo một cái metapost theo hướng dẫn từ blog của anh thachpham, qua blog của anh đọc mấy bài, em đã tạo thành công bài trang viết bài, quản lý bài..vv cho thành viên, tuy nhiên cái meta post mà em tạo em lại ko biết cách để thêm vào trang viết và sửa bài, anh có thể hướng dẫn cho em làm sao để thêm input meta post vào font viết bài cho thành viên được ko ạ. Em xin chan thành cảm ơn
Bạn có thể thêm các input vào:
Tiếp đến trong phần update dữ liệu.
Tìm:
Thêm vào sau:
Chúc bạn thành công!
Bạn giúp mình code lại phần úp album ảnh với, mình có thấy code ở trên, nhưng không sử dụng được.
Ad cho mình hỏi, mình có Custom Fields về vị trí dự án, diện tích, hướng nhà. Mình muốn hiển thị vào trong form để thành viên tự nhập luôn thì thêm như thế nào ạ
có code cho blogger nhỉ
Có thể tích hợp thanh toán trực tuyến khi đăng tin được không bạn?
Cho hỏi muốn bài đăng sẻ cố định vào 1 hoặc 2 category nào đó mà ko phải là list chọn thì làm thế nào ạ
Chào ad, mình muốn thành viên đăng ký chỉ được đăng tối đa 3 bài viết, Và mỗi bài đăng chỉ được up tối đa 5 hình ảnh vào thư viện thì làm sao ạ. Mình cảm ơn.