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

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

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

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

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

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

<?php if ( is_user_logged_in() ) { ?>
// Content for Logged in user
<?php } else {?>
// Content for everyone else
<?php }?>

WordPress Hacks for Members Only Website

แสดงแบบฟอร์มเข้าสู่ระบบ WordPress ได้ทุกที่และปรับแต่งได้

หากคุณต้องการรวมแบบฟอร์มการเข้าสู่ระบบ WordPress ไว้ที่ใดก็ได้ในธีมของคุณ คุณสามารถทำได้โดยใช้ฟังก์ชันต่อไปนี้:

<?php ks29so_login_form(); ?>

อย่างไรก็ตาม มันไม่ได้ให้ตัวเลือกแก่คุณในการปรับแต่งแบบฟอร์มการเข้าสู่ระบบ เพราะมันจะดึงแบบฟอร์มการเข้าสู่ระบบ WordPress เริ่มต้นโดยตรง เกิดอะไรขึ้นถ้าคุณต้องการแสดงอะไรแบบนี้?

นี่คือรหัสที่จะทำ วางรหัสต่อไปนี้ทุกที่ที่คุณต้องการให้แบบฟอร์มปรากฏขึ้น

// WordPress Login Form
<?php if (!(current_user_can(‘level_0′))){ ?>
<h3>Member Login</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( ‘Username’ ) ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<td>
<label><?php _e( ‘Password’ ) ?></label>
<input type="password" 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(‘Forgot Password?’) ?></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 } else { ?>
<!– When User logged in Show the following info –>
<h2>Logout</h2>
<?php get_currentuserinfo();?>
Welcome Back &nbsp<?php echo($current_user->user_login . " ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Logout</a><br />
<a href="<?php echo get_admin_url(); ?>">Admin?</a><!– If you are admin goes to admin dashboard –>
<?php }?>

คุณสามารถเพิ่มแท็ก div CSS เพื่อจัดรูปแบบได้ ข้อดีของการใช้แบบฟอร์มการเข้าสู่ระบบนี้ คุณสามารถสร้างแดชบอร์ดขนาดเล็กสำหรับสมาชิกได้โดยใช้ฟังก์ชัน get_currentuserinfo() และแสดงข้อมูลใดๆ เกี่ยวกับผู้ใช้

เมนู WordPress ที่กำหนดเองสำหรับสมาชิก

เช่นเดียวกับเนื้อหา คุณสามารถสร้างเมนู WordPress แบบกำหนดเองสำหรับสมาชิกได้ มาลงทะเบียนเมนูกันก่อน ไปที่ไฟล์ฟังก์ชันธีมของคุณ (functions.php) ใช้รหัสต่อไปนี้เพื่อลงทะเบียนเมนู

register_nav_menus( array(
‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ),
‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ),
‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ),
) );

ตอนนี้ ให้ใส่โค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการให้เมนูของคุณแสดง ซึ่งส่วนใหญ่จะอยู่ในไฟล์ header.php

<?php
if ( is_user_logged_in() ) {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) );
} else {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘visitor’ ) );
};?>

ตอนนี้คุณต้องสร้างเมนูบน WordPress แบ็คแฮนด์ การตั้งค่า "เมนู" ควรอยู่ภายใต้แท็บลักษณะที่ปรากฏ สร้างเมนูที่มีชื่อหลักและผู้เข้าชม ในทั้งสองเมนูเพิ่มสิ่งที่คุณต้องการแสดง ตัวอย่างเช่น หากคุณต้องการให้หน้าแสดงเฉพาะเมื่อผู้ใช้เข้าสู่ระบบ ให้เพิ่มในเมนูหลัก

คุณยังสามารถสร้างเมนูส่วนท้ายแบบไดนามิกได้โดยใช้วิธีการเดียวกัน

WordPress Custom Fields and Hacks for Bloggers

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

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

ชื่อผู้แต่งรับเชิญในหน้าแรกและโพสต์ส่วนบุคคล

สิ่งแรกที่เราต้องทำคือตั้งค่าคำสั่ง WordPress if เพื่อรับค่าฟิลด์ที่กำหนดเอง วิธีนี้จะแสดงขึ้นเมื่อกำหนดค่าไฟล์ที่กำหนดเองเท่านั้น เปิด "index.php" และ "single.php" และวางโค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการให้ชื่อผู้เขียนปรากฏขึ้น อาจเป็นหลังจากวันที่หรือหลังความคิดเห็น ตัวอย่างเช่นหลังจากรหัสนี้:

<?php the_time(‘M j, Y’) ?>
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true) ) { ?>
// check to see if custom field guest author name exists
< ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?>
< ?php } ?>\

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

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

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

อีกครั้ง อันดับแรก เรามีเงื่อนไข if คำสั่ง ซึ่งค้นหาภาพขนาดย่อและคำอธิบายของผู้เขียน อย่าลืมเปลี่ยนภาพไดเร็กทอรี นอกจากนี้เรายังแนบคลาสเข้ากับบล็อกและหัวแม่มือ ซึ่งช่วยให้จัดรูปแบบทั้งรูปภาพและบล็อกโดยใช้ CSS

<?php if ( get_post_meta($post->ID, ‘autho_thumb’, true) ) { ?> // checks to see if the custom field exist
<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="Author Thumb" 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 } ?>

นี่คือ CSS ที่ฉันใช้

.writer_bio {
color: #666;
background: #eee;
text-transform: none !important;
font-size: 13px;
font-weight: normal;
height: 75px;
width: 600px;
padding: 6px;
padding-bottom: 6px;
padding-left: 0;
margin-bottom: 10px;
}
.writer_bio img {
padding: 0 !important;
float: left !important;
margin-left: 4px !important;
margin-top: 3px !important;
border: 2px #ccc solid !important;
height: 60px;
}

คุณมีสไตล์มากขึ้นด้วยคลาส autho_thumb เมื่อเสร็จแล้วสิ่งที่คุณต้องทำคือเพิ่ม autho_thumb และ guest_author ลงในฟิลด์และกรอกข้อมูล คุณยังสามารถเพิ่ม HTML เช่น ลิงก์ในฟิลด์ที่กำหนดเองได้

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

ฟิลด์กำหนดเองที่ดีกว่าสำหรับการแสดงรูปภาพโพสต์บนหน้าแรก

วิธีนี้ใช้เพื่อแสดงนิ้วโป้งสำหรับโพสต์ที่ด้านหน้า ฉันต้องการนำมันไปอีกเล็กน้อยและทำให้ผู้ใช้ส่วนหน้าง่ายขึ้น นอกจากนี้ ด้วยวิธีการของ Jean ทุกภาพจะมี alt=”post-image” เหมือนกัน และฉันอาจไม่เหมาะกับเครื่องมือค้นหา นอกจากนี้ คุณจะต้องใส่ URL ทั้งหมดสำหรับรูปภาพทุกครั้ง อันดับแรกนี่คือรหัส:

<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);
// variable for image
$image_alt = get_post_meta($post->ID, ‘post-img’, true);// variable for description
// check if the the custom field is called
if ($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 } else { ?>

ก่อนที่ฉันจะอธิบายโค้ด สังเกตว่าฉันไม่ได้เพิ่มคำสั่ง else สำหรับ thumb เริ่มต้น ดูโพสต์ของ Jean หากคุณต้องการให้มีรูปภาพเริ่มต้น หากมีการกำหนดรูปภาพไว้ในฟิลด์ที่กำหนดเอง

อันดับแรก เรามีสองตัวแปรคือ $postimageurl และ $image_alt อย่างแรกคือการรับตำแหน่งรูปภาพ และอันที่สองคือการเพิ่มชื่อรูปภาพ จากนั้นอีกครั้งเราตั้งค่าคำสั่ง if เพื่อตรวจสอบว่ามีการเรียกฟิลด์ที่กำหนดเองหรือไม่

<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>

สิ่งที่แตกต่างคือโค้ดด้านบนที่ได้รับตำแหน่งรูปภาพ ฉันได้สร้างโฟลเดอร์ชื่อ 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 ks29so_list_pages(‘include=7,13′ ); ?>
//or
<?php ks29so_list_pages(‘exclude=5,9′);? >

ยกเว้นหรือรวมเกือบจะทำงานในลักษณะเดียวกัน การยกเว้น จะละเว้นบางหน้าจากรายการหน้า 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 /* If this is a category archive */ if (is_category()) { ?>
<h3 class="pagetitle">Current Browsing Topic: &#8216;<?php single_cat_title(); ?>&#8217;</h3>
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h3 class="pagetitle">Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h3>