WordPress Hacks สำหรับเว็บไซต์สำหรับสมาชิกเท่านั้น
เผยแพร่แล้ว: 2020-05-19ตามค่าเริ่มต้น WordPress เป็นเครื่องมือสร้างบล็อก อย่างไรก็ตาม คุณสามารถปรับแต่งให้เป็นไปตามที่ต้องการได้อย่างแท้จริง หลายคนใช้ WordPress เพื่อสร้างเว็บไซต์สำหรับสมาชิกเท่านั้น
คุณสามารถใช้ปลั๊กอินได้เสมอ แต่ถ้าคุณต้องการแก้ไขเพียงเล็กน้อย จะติดตั้งปลั๊กอินทำไม ในเมื่อคุณสามารถทำได้โดยใช้โค้ดไม่กี่บรรทัด ต่อไปนี้เป็นเคล็ดลับง่ายๆ แต่มีประสิทธิภาพในการสร้างเว็บไซต์สำหรับสมาชิกเท่านั้น
เนื้อหาสำหรับสมาชิกเท่านั้นที่ไม่มีปลั๊กอิน
หากมีเนื้อหาบางอย่างในเว็บไซต์ของคุณที่คุณต้องการแสดงต่อสมาชิกที่ลงทะเบียนเท่านั้น คุณสามารถทำได้โดยใช้รหัสต่อไปนี้ในธีมของคุณ สิ่งใดก็ตามที่อยู่ระหว่าง is_user_logged_in
จะเห็นได้เฉพาะสมาชิกเท่านั้น
[php]
<?php ถ้า ( is_user_logged_in() ) { ?>
// เนื้อหาสำหรับผู้ใช้ที่เข้าสู่ระบบ
<?php } อื่น ๆ {?>
// เนื้อหาสำหรับทุกคน
<?php }?>
[/php]
แสดงแบบฟอร์มเข้าสู่ระบบ WordPress ได้ทุกที่และปรับแต่งได้
หากคุณต้องการรวมแบบฟอร์มการเข้าสู่ระบบ WordPress ไว้ที่ใดก็ได้ในธีมของคุณ คุณสามารถทำได้โดยใช้ฟังก์ชันต่อไปนี้:
[php]
<?php ks29so_login_form(); ?>
[/php]
อย่างไรก็ตาม มันไม่ได้ให้ตัวเลือกแก่คุณในการปรับแต่งแบบฟอร์มการเข้าสู่ระบบ เพราะมันจะดึงแบบฟอร์มการเข้าสู่ระบบ WordPress เริ่มต้นโดยตรง ถ้าจะโชว์แบบนี้ล่ะ?
นี่คือรหัสที่จะทำอย่างนั้น วางรหัสต่อไปนี้ทุกที่ที่คุณต้องการให้แบบฟอร์มปรากฏขึ้น
[php]
// แบบฟอร์มเข้าสู่ระบบ WordPress
<?php if (!(current_user_can('level_0′)))){ ?>
<h3>เข้าสู่ระบบสมาชิก</h3>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<table width='100%' cellspacing="0" cellpadding="0">
<tr>
<td>
<label><?php _e( 'ชื่อผู้ใช้' ) ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<td>
<label><?php _e( 'รหัสผ่าน' ) ?></label>
<input type="รหัสผ่าน" name="pwd" class="input" value="" />
</td>
</tr>
<tr>
<td colspan="2"><?php do_action('login_form'); ?>
</td>
</tr>
<tr>
<td>
<a href="<?php echo site_url('wp-login.php?action=lostpassword', 'login') ?>" title="<?php _e('Password Lost and Found') ?>">< ?php _e('ลืมรหัสผ่าน?') ?></a>
</td>
<td>
<input type="submit" name="submit" value="Log In" class="button" />
<input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" />
</td>
</tr>
</table>
</form>
<?php } อื่น ๆ { ?>
<!– เมื่อผู้ใช้เข้าสู่ระบบ แสดงข้อมูลต่อไปนี้ –>
<h2>ออกจากระบบ</h2>
<?php get_currentuserinfo();?>
ยินดีต้อนรับกลับ  <?php echo($current_user->user_login . ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">ออกจากระบบ</a><br />
<a href="<?php echo get_admin_url(); ?>">ผู้ดูแลระบบ?</a><!– หากคุณเป็นผู้ดูแลระบบ ให้ไปที่แดชบอร์ดผู้ดูแลระบบ –>
<?php }?>
[/php]
คุณสามารถเพิ่มแท็ก div CSS เพื่อจัดรูปแบบได้ ข้อดีของการใช้แบบฟอร์มการเข้าสู่ระบบนี้ คุณสามารถสร้างแดชบอร์ดขนาดเล็กสำหรับสมาชิกได้โดยใช้ฟังก์ชัน get_currentuserinfo() และแสดงข้อมูลใดๆ เกี่ยวกับผู้ใช้
เมนู WordPress แบบกำหนดเองสำหรับสมาชิก
เช่นเดียวกับเนื้อหา คุณสามารถสร้างเมนู WordPress แบบกำหนดเองสำหรับสมาชิกได้ มาลงทะเบียนเมนูกันก่อน ไปที่ไฟล์ฟังก์ชันธีมของคุณ (functions.php) ใช้รหัสต่อไปนี้เพื่อลงทะเบียนเมนู
[php]
register_nav_menus (อาร์เรย์ (
'primary' => __( 'การนำทางหลัก', 'twentyten' ),
'visitor' => __( 'การนำทางผู้เยี่ยมชม', 'twentyten' ),
'footer' => __( 'การนำทางส่วนท้าย', 'twentyten' ),
) );
[/php]
ตอนนี้ ให้ใส่โค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการให้เมนูของคุณแสดง ซึ่งส่วนใหญ่จะอยู่ในไฟล์ header.php
[php]
<?php
ถ้า ( is_user_logged_in() ) {
ks29so_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
} อื่น {
ks29so_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'visitor' ) );
};?>
[/php]
ตอนนี้คุณต้องสร้างเมนูบน WordPress แบ็คแฮนด์ การตั้งค่า "เมนู" ควรอยู่ภายใต้แท็บลักษณะที่ปรากฏ สร้างเมนูที่มีชื่อหลักและผู้เข้าชม ในทั้งสองเมนูเพิ่มสิ่งที่คุณต้องการแสดง ตัวอย่างเช่น หากคุณต้องการให้หน้าแสดงเฉพาะเมื่อผู้ใช้เข้าสู่ระบบ ให้เพิ่มในเมนูหลัก
คุณยังสามารถสร้างเมนูส่วนท้ายแบบไดนามิกได้โดยใช้วิธีการเดียวกัน
WordPress Custom Fields and Hacks for Bloggers
คุณสามารถใช้ WordPress เพื่อสร้างเว็บไซต์ที่กำหนดเองและดูเป็นมืออาชีพได้ ในโพสต์นี้ เรากำลังแบ่งปันกลเม็ดและแฮ็กฟิลด์แบบกำหนดเองของ WordPress ที่จะช่วยให้คุณมีไซต์ที่ขับเคลื่อนด้วย WordPress ได้ดีขึ้น
บางครั้งอาจมีบล็อกเกอร์รับเชิญที่เขียนโพสต์บนไซต์ของคุณเพียงโพสต์เดียวและนั่นคือทั้งหมด คุณสามารถใช้วิธีนี้เพื่อแสดงข้อมูลผู้เขียนเป็นประจำได้ โปรดทราบว่าผู้เขียนได้ลงทะเบียนใน WordPress แล้ว บางทีคุณอาจไม่ต้องการลงทะเบียนทุกครั้งที่มีผู้เขียนรับเชิญใหม่เขียน แต่คุณจะยังได้รับข้อมูลผู้เขียนรับเชิญเพื่อแสดงในรูปแบบเดียวกับผู้เขียนทั่วไปได้อย่างไร ฟิลด์ที่กำหนดเอง!
ชื่อผู้แต่งรับเชิญในหน้าแรกและโพสต์ส่วนบุคคล
สิ่งแรกที่เราต้องทำคือตั้งค่าคำสั่ง WordPress if เพื่อรับค่าฟิลด์ที่กำหนดเอง วิธีนี้จะแสดงขึ้นเมื่อกำหนดค่าไฟล์ที่กำหนดเองเท่านั้น เปิด "index.php" และ "single.php" และวางโค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการให้ชื่อผู้เขียนปรากฏขึ้น อาจเป็นหลังจากวันที่หรือหลังความคิดเห็น ตัวอย่างเช่นหลังจากรหัสนี้:
[php]
<?php the_time('M j, Y') ?>
[/php]
[php]
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true) ) { ?>
// ตรวจสอบเพื่อดูว่ามีชื่อผู้แต่งผู้เยี่ยมชมฟิลด์ที่กำหนดเองหรือไม่
< ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?>
< ?php } ?>\
[/php]
เมื่อเราใส่คำสั่ง if เราก็เรียกมันว่าโพสต์ใดก็ตามที่เราต้องการให้ชื่อผู้แต่งของแขกแสดงขึ้น ชื่อผู้เขียนของผู้เข้าพักควรปรากฏบนหน้าแรกและสำหรับโพสต์เฉพาะเท่านั้น
![](https://s.stat888.com/img/bg.png)
บล็อกข้อมูลผู้เขียนรับเชิญในแต่ละโพสต์
โอเค เรามีชื่อปรากฏในคำอธิบายเมตาของโพสต์ แต่ข้อมูลบางอย่างเกี่ยวกับผู้เขียนรับเชิญก็น่าจะดีเช่นกัน
อีกครั้ง อันดับแรก เรามีเงื่อนไข if คำสั่ง ซึ่งค้นหาภาพขนาดย่อและคำอธิบายของผู้เขียน อย่าลืมเปลี่ยนภาพไดเร็กทอรี นอกจากนี้เรายังแนบคลาสเข้ากับบล็อกและหัวแม่มือ ซึ่งช่วยให้จัดรูปแบบทั้งรูปภาพและบล็อกโดยใช้ CSS
[php]
<?php if ( get_post_meta($post->ID, 'autho_thumb', true) ) { ?> // ตรวจสอบเพื่อดูว่ามีฟิลด์ที่กำหนดเองหรือไม่
<div class="writer_bio">
<img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("autho_thumb"); echo $values[0]; ?>" alt="ขนาดย่อของผู้เขียน " width="60" width="60" height="60" /><?php } ?
<?php if ( get_post_meta($post->ID, 'guest_author', true) ) { ?>
<?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></div>
<?php } ?>
[/php]
นี่คือ CSS ที่ฉันใช้
[css]
.writer_bio {
สี: #666;
พื้นหลัง: #eee;
การแปลงข้อความ: none !important;
ขนาดตัวอักษร: 13px;
ตัวอักษร-น้ำหนัก: ปกติ;
ความสูง: 75px;
ความกว้าง: 600px;
ช่องว่างภายใน: 6px;
padding-ด้านล่าง: 6px;
padding-ซ้าย: 0;
ระยะขอบล่าง: 10px;
}
.writer_bio img {
ช่องว่างภายใน: 0 !สำคัญ;
float: ซ้าย !สำคัญ;
ระยะขอบซ้าย: 4px !สำคัญ;
ขอบบน: 3px !สำคัญ;
เส้นขอบ: 2px #ccc ของแข็ง !สำคัญ;
ความสูง: 60px;
}
[/css]
คุณมีสไตล์มากขึ้นด้วยคลาส autho_thumb เมื่อเสร็จแล้วสิ่งที่คุณต้องทำคือเพิ่ม autho_thumb และ guest_author ลงในฟิลด์และกรอกข้อมูล คุณสามารถเพิ่ม HTML เช่น ลิงก์ในฟิลด์ที่กำหนดเองได้
ดังนั้น คุณมีฟิลด์ที่กำหนดเองสองฟิลด์สำหรับข้อมูลผู้เขียนรับเชิญ นี้อาจดูเหมือนหลายขั้นตอน เชื่อฉันเถอะว่าครั้งหนึ่งเคยทำสำเร็จ แค่เพิ่มรูปภาพและคำอธิบายในครั้งต่อไปที่คุณต้องการ
ฟิลด์กำหนดเองที่ดีกว่าสำหรับการแสดงรูปภาพโพสต์บนหน้าแรก
วิธีนี้ใช้เพื่อแสดงนิ้วโป้งสำหรับโพสต์ที่ด้านหน้า ฉันต้องการนำมันไปอีกเล็กน้อยและทำให้ผู้ใช้ส่วนหน้าง่ายขึ้น นอกจากนี้ ด้วยวิธีการของ Jean ทุกภาพจะมี alt=”post-image” เหมือนกัน และฉันอาจไม่เหมาะกับเครื่องมือค้นหา นอกจากนี้ คุณจะต้องใส่ URL ทั้งหมดสำหรับรูปภาพทุกครั้ง อันดับแรกนี่คือรหัส:
[php]
<?php $postimageurl = get_post_meta($post->ID, 'post-img', จริง);
// ตัวแปรสำหรับรูปภาพ
$image_alt = get_post_meta($post->ID, 'post-img', true); // ตัวแปรสำหรับคำอธิบาย
// ตรวจสอบว่าฟิลด์ที่กำหนดเองเรียกว่า
ถ้า ($ postimageurl) {
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class=
quot;post-img" alt="<?php echo $image_alt; ?>"; width="500" height="300" /></a>
<?php } อื่น ๆ { ?>
[/php]
ก่อนที่ฉันจะอธิบายโค้ด สังเกตว่าฉันไม่ได้เพิ่มคำสั่ง else สำหรับ thumb เริ่มต้น ดูโพสต์ของ Jean หากคุณต้องการให้มีรูปภาพเริ่มต้น หากมีการกำหนดรูปภาพไว้ในฟิลด์ที่กำหนดเอง
อันดับแรก เรามีสองตัวแปรคือ $postimageurl และ $image_alt อย่างแรกคือการรับตำแหน่งรูปภาพ และอันที่สองคือการเพิ่มชื่อรูปภาพ จากนั้นอีกครั้งเราตั้งค่าคำสั่ง if เพื่อตรวจสอบว่ามีการเรียกฟิลด์ที่กำหนดเองหรือไม่
[php]
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/'?>
[/php]
สิ่งที่แตกต่างคือโค้ดด้านบนที่ได้รับตำแหน่งรูปภาพ ฉันได้สร้างโฟลเดอร์ชื่อ thumb ในไดเร็กทอรีอัพโหลด WordPress ของฉัน ดังนั้นแทนที่จะพิมพ์ URL ทั้งหมดทุกครั้งที่ฉันพิมพ์ชื่อรูปภาพ เมื่อฉันอัปโหลดรูปภาพในโฟลเดอร์แล้ว
หากคุณต้องการไดเร็กทอรีอื่น เช่น สมมติว่าคุณจะเก็บภาพของคุณในรูทของโดเมน เพียงแค่แทนที่ <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
ด้วย http://yourwebsite.com/images/<?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
.
ดังนั้น โค้ดจึงถูกปรับแต่งเล็กน้อย ดังนั้นรูปภาพของโพสต์ทุกรูปจะมี alt (ชื่อ) ที่แตกต่างกัน และคุณจะต้องพิมพ์นามสกุลของชื่อรูปภาพแทนที่จะพิมพ์ URL ทั้งหมด
จัดเรียงการนำทาง WordPress ของคุณตามที่คุณต้องการ
สิ่งแรกที่ต้องรู้คือหน้ารายการ wordpress โดยใช้แท็ก ks29so_list_pages ซึ่งมักจะอยู่ใน header.php แต่คุณอาจไม่ต้องการแสดงรายการเพจทั้งหมดของคุณ หากคุณต้องการซ่อนบางหน้าของคุณไม่ให้แสดง คุณต้องดำเนินการดังนี้:
[php]
<?php ks29so_list_pages('include=7,13′ ); ?>
//หรือ
<?php ks29so_list_pages('exclude=5,9');? >
[/php]
ยกเว้นหรือรวมเกือบจะทำงานในลักษณะเดียวกัน การยกเว้น จะละเว้นบางหน้าจากรายการหน้า WordPress และรวมแสดงเฉพาะรหัสหน้าที่คุณระบุ อย่างไรก็ตาม บล็อกการออกแบบเว็บส่วนใหญ่หรือบล็อกอื่นๆ ชอบใช้แท็กหรือหมวดหมู่เป็นการนำทาง ในกรณีนั้น คุณสามารถกำจัดแท็ก ks29so_list และกำหนดโค้ดการนำทางเองได้ อีกทางหนึ่ง คุณสามารถทำได้ด้วยแท็กของคุณเช่นกัน ประโยชน์ของการเข้ารหัสด้วยวิธีนี้ คุณสามารถกำหนดคลาส CSS เพื่อกำหนดสไตล์แต่ละองค์ประกอบของการนำทาง
ฉันเพิ่งต้องหา ID หน้าสำหรับการยกเว้นในเทมเพลตที่ฉันใช้อยู่ และหลังจากนั้นประมาณ 10 นาที ในที่สุดก็พบวิธีง่ายๆ ในการค้นหา ID หน้าของ 'เพจ' ของ WordPress
ใน WordPress เวอร์ชันเก่า ฉันเชื่อว่าวิธีนี้ง่ายกว่า แต่นี่คือวิธีที่คุณสามารถทำได้ในตอนนี้
- ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
- จากนั้นวางเมาส์เหนือหน้าที่คุณต้องการทราบ ID ของ
- คุณจะเห็น ID ในแถบสถานะที่ด้านล่างของเบราว์เซอร์ (ดูด้านล่าง)
หากคุณไม่เห็นที่อยู่แบบเต็ม ให้ลองวิธีอื่น (ด้านล่างเพิ่มเติม)
- ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
- จากนั้นคุณจะเห็น ID ในแถบที่อยู่ มันจะเป็นตัวเลขหลังเครื่องหมายเท่ากับ
- คลิกบนเพจที่คุณต้องการทราบ ID ของ
กำลังแสดงหัวข้อที่เก็บถาวร
ธีม WordPress ส่วนใหญ่มาพร้อมกับหน้า archive.php แต่ฉันเคยเห็นเว็บไซต์จำนวนมากที่หน้าเก็บถาวรไม่มีประโยชน์มากและไม่ได้บอกผู้ใช้ว่าพวกเขากำลังเรียกดูหัวข้อหรือหมวดหมู่ใด คุณสามารถเพิ่มรหัสต่อไปนี้ใน archive.php เพื่อหลีกเลี่ยงความสับสน
[php]
<?php /* หากเป็นหมวดหมู่ที่เก็บถาวร */ if (is_category()) { ?>
<h3 class="pagetitle">หัวข้อการเรียกดูปัจจุบัน: ‘<?php single_cat_title(); ?>’</h3>
<?php /* หากเป็นไฟล์แท็ก */ }elseif( is_tag() ) { ?>
<h3 class="pagetitle">โพสต์ที่ติดแท็ก ‘<?php single_tag_title(); ?>’</h3>
[/php]