メンバー専用ウェブサイトのためのWordPressハック
公開: 2020-05-19デフォルトでは、WordPressはブログツールです。 それにもかかわらず、あなたは本当にあなたが望むようにそれを作るためにカスタマイズすることができます。 多くの人がWordPressを使用してメンバー専用のWebサイトを作成しています。
プラグインはいつでも使用できますが、少し変更するだけでよい場合は、数行のコードでプラグインをインストールできるのに、なぜプラグインをインストールするのでしょうか。 メンバー専用サイトを作成するためのシンプルで効果的なハックをいくつか紹介します。
プラグインなしのメンバー専用コンテンツ
登録メンバーにのみ表示したいコンテンツがサイトにある場合は、テーマで次のコードを使用して表示できます。 is_user_logged_in
の間にあるものはすべて、メンバーだけが見ることができます。
[php]
<?php if(is_user_logged_in()){?>
//ログインユーザーのコンテンツ
<?php} else {?>
//他のすべての人のためのコンテンツ
<?php}?>
[/ php]
どこにでも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( '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( 'パスワードをお忘れですか?')?> </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 {?>
<!–ユーザーがログインしたとき次の情報を表示–>
<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]
CSSdivタグを追加してスタイルを設定できます。 このログインフォームを使用する利点は、get_currentuserinfo()関数を使用してメンバー用のミニダッシュボードを作成し、ユーザーに関する情報を表示できることです。
メンバー向けのカスタムWordPressメニュー
コンテンツと同様に、メンバー用のカスタムWordPressメニューを作成できます。 まずはメニューを登録しましょう。 テーマ関数ファイル(functions.php)に移動します。 次のコードを使用してメニューを登録します。
[php]
register_nav_menus(array(
'primary' => __( 'Primary Navigation'、 'twentyten')、
'visitor' => __( 'Visitor Navigation'、 'twentyten')、
'footer' => __( 'Footer Navigation'、 'twentyten')、
));
[/ php]
次に、メニューを表示する場所、おそらくheader.phpファイル内に次のコードを配置します。
[php]
<?php
if(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のバックハンドで実際にメニューを作成する必要があります。 「メニュー」設定は、「外観」タブの下にある必要があります。 mainとvisitorという名前のメニューを作成します。 両方のメニューに、表示したいものを追加します。 例:ユーザーがログインしたときにのみページを表示する場合は、メインメニューに追加します。
同じ方法を使用して、動的フッターメニューを作成することもできます。
ブロガーのためのWordPressカスタムフィールドとハック
WordPressを使用して、カスタムでプロ並みのWebサイトを作成できます。 この投稿では、WordPressを利用したより優れたサイトを作成できるようにするWordPressのカスタムフィールドトリックとハックをいくつか紹介します。
時々あなたのサイトにたった1つの投稿を書くゲストブロガーがいるかもしれません、そしてそれはすべてです。 このメソッドを使用して、通常の作成者情報を表示できます。 著者は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]
![](https://s.stat888.com/img/bg.png)
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;
text-transform:none!important;
フォントサイズ:13px;
フォントの太さ:通常;
高さ:75px;
幅:600px;
パディング:6px;
パディング-下:6px;
パディング-左:0;
margin-bottom:10px;
}
.writer_bio img {
パディング:0!重要;
フロート:左!重要;
margin-left:4px!important;
margin-top:3px!important;
border:2px #ccc solid!important;
高さ:60px;
}
[/ css]
クラスautho_thumbを使用してさらにスタイルを設定できます。 それが完了したら、必要なのは、フィールドにautho_thumbとguest_authorを追加し、情報を入力することだけです。 カスタムフィールドにリンクなどのHTMLを追加することもできます。
したがって、ゲスト作成者情報用の2つのカスタムフィールドがあります。 これは多くのステップのように思えるかもしれません。 一度やったら信じてください。次にやりたいときに画像と説明を追加するだけです。
フロントページに投稿画像を表示するためのより良いカスタムフィールド
このメソッドは、前面の支柱の親指を表示するために使用されます。 私はそれをもう少し進めて、フロントエンドユーザーが簡単にできるようにしたかったのです。 また、Jeanの方法では、すべての画像が同じalt =” post-image”を持ち、検索エンジンには適さない可能性があります。 さらに、画像のURL全体を毎回含める必要があります。 最初にここにコードがあります:
[php]
<?php $ postimageurl = get_post_meta($ post-> ID、 'post-img'、true);
//画像の変数
$ image_alt = get_post_meta($ post-> ID、 'post-img'、true); //説明用の変数
//カスタムフィールドが呼び出されているかどうかを確認します
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 {?>
[/ php]
コードを説明する前に、デフォルトのサムにelseステートメントを追加しなかったことに注意してください。 カスタムフィールドに画像が割り当てられている場合、デフォルトの画像が必要な場合は、Jeanの投稿をご覧ください。
まず、2つの変数$ postimageurlと$ image_altがあります。 1つ目は画像の場所を取得することで、2つ目は画像名を追加することです。 次に、カスタムフィールドが呼び出されるかどうかを確認するためにifステートメントを設定します。
[php]
<?php echo get_option( 'siteurl')。 '/ wp-content / uploads / thumb /'?>
[/ php]
別のことは、画像の場所を取得するコードの上にあります。 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; ?>
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
with http://yourwebsite.com/images/<?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
。
そのため、コードは少し調整されているため、投稿画像ごとに異なるalt(タイトル)が付けられ、URL全体ではなく画像名拡張子を入力します。
WordPressのナビゲーションを好きなようにアレンジ
最初に知っておくべきことは、ks29so_list_pagesタグを使用したワードプレスのリストページです。これは通常、header.phpにあります。 ただし、すべてのページを一覧表示したくない場合があります。 一部のページが表示されないようにする場合は、次のようにします。
[php]
<?php ks29so_list_pages( 'include = 7,13'); ?>
//また
<?php ks29so_list_pages( 'exclude = 5,9');? >>
[/ php]
除外または含めると、ほぼ同じように機能します。 Excludeは、WordPressページリストから特定のページを省略し、指定したページIDのみを表示します。 ただし、ほとんどのWebデザインブログやその他のブログでは、ナビゲーションとしてタグやカテゴリを使用するのが好きです。 その場合は、ks29so_listタグを削除して、ナビゲーションをカスタムコード化するだけです。 または、タグを使用してこれを行うこともできます。 このようにコーディングすることの利点は、CSSクラスを割り当てて、ナビゲーションの各要素のスタイルを設定できることです。
最近、使用していたテンプレートで除外するページIDを見つける必要があり、約10分後に、WordPressの「ページ」のページIDを見つける簡単な方法がついに見つかりました。
古いバージョンのWordPressでは、これは簡単だったと思いますが、これが今の方法です。
- WordPress管理パネルに移動し、次にページに移動します。
- 次に、IDを知りたいページにカーソルを合わせます。
- ブラウザの下部にあるステータスバーにIDが表示されます(以下を参照)。
完全なアドレスが表示されない場合は、別の方法を試してください(以下を参照)。
- WordPress管理パネルに移動し、次にページに移動します。
- 次に、アドレスバーにIDが表示されます。 等号の後の数字になります。
- IDを知りたいページをクリックしてください。
アーカイブトピックの表示
ほとんどのWordPressテーマには、archive.phpページが付属しています。 しかし、アーカイブページがあまり役に立たず、閲覧しているトピックやカテゴリがユーザーに表示されないWebサイトをたくさん見ました。 混乱を避けるために、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]