僅限會員網站的 WordPress 黑客

已發表: 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 }?>

你可以添加一個 CSS div 標籤來設置它的樣式。 使用此登錄表單的優勢在於,您幾乎可以使用 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 上反手創建菜單。 “菜單”設置應在外觀選項卡下。 創建一個名為 main 和 visitor 的菜單。 在兩個菜單上添加您想要顯示的任何內容。 例如:如果您希望頁面僅在用戶登錄時顯示,請將其添加到主菜單中。

您還可以使用相同的方法創建動態頁腳菜單。

適用於 Blogger 的 WordPress 自定義字段和技巧

您可以使用 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 語句。 如果您希望在自定義字段中分配默認圖像,請查看 Jean 的帖子。

首先我們有兩個變量 $postimageurl 和 $image_alt。 第一個是獲取圖像位置,第二個是添加圖像名稱。 然後我們再次設置一個 if 語句來檢查自定義字段是否被調用。

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

不同的是上面獲取圖像位置的代碼。 我在我的 WordPress 上傳目錄中創建了一個名為 thumb 的文件夾,因此,當我將圖像上傳到文件夾中後,我無需每次都輸入整個 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 導航

首先要知道的是使用 ks29so_list_pages 標籤的 wordpress 列表頁面,該標籤通常位於 header.php 中。 但您可能不想列出所有頁面。 如果你想隱藏你的一些頁面不顯示,你可以這樣做:

<?php ks29so_list_pages(‘include=7,13′ ); ?>
//or
<?php ks29so_list_pages(‘exclude=5,9′);? >

排除或包含幾乎以相同的方式工作。 排除將忽略 WordPress 頁面列表中的某些頁面,並且僅包含顯示您指定的頁面 ID。 但是,大多數網頁設計博客或任何其他博客都喜歡使用標籤或類別作為導航。 在這種情況下,您可以去掉 ks29so_list 標記並自定義導航代碼。 或者,您也可以使用標籤來執行此操作。 以這種方式編碼的好處是您可以分配 CSS 類來設置導航的每個元素的樣式。

如何找到您的 WordPress 頁面 ID

我最近不得不在我正在使用的模板中找到要排除的頁面 ID,大約 10 分鐘後,我終於找到了一種簡單的方法來查找 WordPress“頁面”的頁面 ID。

在舊版本的 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>