WordPress Hacks สำหรับเว็บไซต์สำหรับสมาชิกเท่านั้น

เผยแพร่แล้ว: 2020-05-19

ตามค่าเริ่มต้น WordPress เป็นเครื่องมือสร้างบล็อก อย่างไรก็ตาม คุณสามารถปรับแต่งให้เป็นไปตามที่ต้องการได้อย่างแท้จริง หลายคนใช้ WordPress เพื่อสร้างเว็บไซต์สำหรับสมาชิกเท่านั้น

คุณสามารถใช้ปลั๊กอินได้เสมอ แต่ถ้าคุณต้องการแก้ไขเพียงเล็กน้อย จะติดตั้งปลั๊กอินทำไม ในเมื่อคุณสามารถทำได้โดยใช้โค้ดไม่กี่บรรทัด ต่อไปนี้เป็นเคล็ดลับง่ายๆ แต่มีประสิทธิภาพในการสร้างเว็บไซต์สำหรับสมาชิกเท่านั้น

เนื้อหาสำหรับสมาชิกเท่านั้นที่ไม่มีปลั๊กอิน

หากมีเนื้อหาบางอย่างในเว็บไซต์ของคุณที่คุณต้องการแสดงต่อสมาชิกที่ลงทะเบียนเท่านั้น คุณสามารถทำได้โดยใช้รหัสต่อไปนี้ในธีมของคุณ สิ่งใดก็ตามที่อยู่ระหว่าง is_user_logged_in จะเห็นได้เฉพาะสมาชิกเท่านั้น

[php]
<?php ถ้า ( is_user_logged_in() ) { ?>
// เนื้อหาสำหรับผู้ใช้ที่เข้าสู่ระบบ
<?php } อื่น ๆ {?>
// เนื้อหาสำหรับทุกคน
<?php }?>
[/php]

WordPress Hacks for Members Only Website

แสดงแบบฟอร์มเข้าสู่ระบบ 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();?>
ยินดีต้อนรับกลับ &nbsp<?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 เราก็เรียกมันว่าโพสต์ใดก็ตามที่เราต้องการให้ชื่อผู้แต่งของแขกแสดงขึ้น ชื่อผู้เขียนของผู้เข้าพักควรปรากฏบนหน้าแรกและสำหรับโพสต์เฉพาะเท่านั้น

บล็อกข้อมูลผู้เขียนรับเชิญในแต่ละโพสต์

โอเค เรามีชื่อปรากฏในคำอธิบายเมตาของโพสต์ แต่ข้อมูลบางอย่างเกี่ยวกับผู้เขียนรับเชิญก็น่าจะดีเช่นกัน

อีกครั้ง อันดับแรก เรามีเงื่อนไข 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 หน้า WordPress ของคุณ

ฉันเพิ่งต้องหา ID หน้าสำหรับการยกเว้นในเทมเพลตที่ฉันใช้อยู่ และหลังจากนั้นประมาณ 10 นาที ในที่สุดก็พบวิธีง่ายๆ ในการค้นหา ID หน้าของ 'เพจ' ของ WordPress

ใน WordPress เวอร์ชันเก่า ฉันเชื่อว่าวิธีนี้ง่ายกว่า แต่นี่คือวิธีที่คุณสามารถทำได้ในตอนนี้

  1. ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
  2. จากนั้นวางเมาส์เหนือหน้าที่คุณต้องการทราบ ID ของ
  3. คุณจะเห็น ID ในแถบสถานะที่ด้านล่างของเบราว์เซอร์ (ดูด้านล่าง)

หากคุณไม่เห็นที่อยู่แบบเต็ม ให้ลองวิธีอื่น (ด้านล่างเพิ่มเติม)

  1. ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
  2. จากนั้นคุณจะเห็น ID ในแถบที่อยู่ มันจะเป็นตัวเลขหลังเครื่องหมายเท่ากับ
  3. คลิกบนเพจที่คุณต้องการทราบ ID ของ

กำลังแสดงหัวข้อที่เก็บถาวร

ธีม WordPress ส่วนใหญ่มาพร้อมกับหน้า archive.php แต่ฉันเคยเห็นเว็บไซต์จำนวนมากที่หน้าเก็บถาวรไม่มีประโยชน์มากและไม่ได้บอกผู้ใช้ว่าพวกเขากำลังเรียกดูหัวข้อหรือหมวดหมู่ใด คุณสามารถเพิ่มรหัสต่อไปนี้ใน archive.php เพื่อหลีกเลี่ยงความสับสน

[php]
<?php /* หากเป็นหมวดหมู่ที่เก็บถาวร */ if (is_category()) { ?>
<h3 class="pagetitle">หัวข้อการเรียกดูปัจจุบัน: &#8216;<?php single_cat_title(); ?>&#8217;</h3>
<?php /* หากเป็นไฟล์แท็ก */ }elseif( is_tag() ) { ?>
<h3 class="pagetitle">โพสต์ที่ติดแท็ก &#8216;<?php single_tag_title(); ?>&#8217;</h3>
[/php]