仅限会员网站的 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>