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 ได้ทุกที่และปรับแต่งได้
หากคุณต้องการรวมแบบฟอร์มการเข้าสู่ระบบ 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  <?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 หน้าสำหรับการยกเว้นในเทมเพลตที่ฉันใช้อยู่ และหลังจากนั้นประมาณ 10 นาที ในที่สุดก็พบวิธีง่ายๆ ในการค้นหา ID หน้าของ 'เพจ' ของ WordPress
ใน WordPress เวอร์ชันเก่า ฉันเชื่อว่าวิธีนี้ง่ายกว่า แต่นี่คือวิธีที่คุณสามารถทำได้ในตอนนี้
- ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
- จากนั้นวางเมาส์เหนือหน้าที่คุณต้องการทราบ ID ของ
- คุณจะเห็น ID ในแถบสถานะที่ด้านล่างของเบราว์เซอร์ (ดูด้านล่าง)
หากคุณไม่เห็นที่อยู่แบบเต็ม ให้ลองวิธีอื่น (ด้านล่างเพิ่มเติม)
- ไปที่แผงผู้ดูแลระบบ WordPress จากนั้นไปที่หน้า
- จากนั้นคุณจะเห็น ID ในแถบที่อยู่ มันจะเป็นตัวเลขหลังเครื่องหมายเท่ากับ
- คลิกบนเพจที่คุณต้องการทราบ ID ของ
กำลังแสดงหัวข้อที่เก็บถาวร
ธีม WordPress ส่วนใหญ่มาพร้อมกับหน้า archive.php แต่ฉันเคยเห็นเว็บไซต์จำนวนมากที่หน้าเก็บถาวรไม่เป็นประโยชน์และไม่ได้บอกผู้ใช้ว่าพวกเขากำลังเรียกดูหัวข้อหรือหมวดหมู่ใด คุณสามารถเพิ่มรหัสต่อไปนี้ใน archive.php เพื่อหลีกเลี่ยงความสับสน
<?php /* If this is a category archive */ if (is_category()) { ?> <h3 class="pagetitle">Current Browsing Topic: ‘<?php single_cat_title(); ?>’</h3> <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?> <h3 class="pagetitle">Posts Tagged ‘<?php single_tag_title(); ?>’</h3>