メンバー限定のウェブサイトのためのWordPressハック
公開: 2020-05-19デフォルトでは、WordPressはブログツールです。 それにもかかわらず、あなたは本当にあなたが望むようにそれを作るためにカスタマイズすることができます。 多くの人がWordPressを使用してメンバー専用のWebサイトを作成しています。
プラグインはいつでも使用できますが、少しの変更が必要な場合は、数行のコードでプラグインをインストールできるのに、なぜプラグインをインストールするのですか。 メンバー専用サイトを作成するためのシンプルで効果的なハックをいくつか紹介します。
プラグインなしのメンバー専用コンテンツ
登録メンバーにのみ表示したいコンテンツがサイトにある場合は、テーマで次のコードを使用して行うことができます。 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 }?>
CSSdivタグを追加してスタイルを設定できます。 このログインフォームを使用する利点は、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という名前のメニューを作成します。 両方のメニューで、表示したいものを追加します。 例:ユーザーがログインしたときにのみページを表示する場合は、メインメニューに追加します。
同じ方法を使用して、動的フッターメニューを作成することもできます。
ブロガーのためのWordPressカスタムフィールドとハック
WordPressを使用して、カスタムでプロ並みのWebサイトを作成できます。 この投稿では、WordPressを利用したより優れたサイトを作成できるようにするWordPressのカスタムフィールドトリックとハックをいくつか紹介します。
時々あなたのサイトにたった1つの投稿を書くゲストブロガーがいるかもしれません、そしてそれはすべてです。 このメソッドを使用して、通常の作成者情報を表示できます。 著者は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を追加することもできます。
したがって、ゲスト作成者情報用の2つのカスタムフィールドがあります。 これは多くのステップのように思えるかもしれません。 一度やったことを信じてください。次にやりたいときに画像と説明を追加するだけです。
フロントページに投稿画像を表示するためのより良いカスタムフィールド
この方法は、前面に支柱の親指を表示するために使用されます。 私はそれをもう少し進めて、フロントエンドユーザーが簡単にできるようにしたかったのです。 また、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の投稿をご覧ください。
まず、2つの変数$postimageurlと$image_altがあります。 1つ目は画像の場所を取得することで、2つ目は画像名を追加することです。 次に、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; ?>
<?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タグを使用したワードプレスのリストページです。これは通常、header.phpにあります。 ただし、すべてのページを一覧表示したくない場合があります。 一部のページが表示されないようにする場合は、次のようにします。
<?php ks29so_list_pages(‘include=7,13′ ); ?> //or <?php ks29so_list_pages(‘exclude=5,9′);? >
除外または含めると、ほぼ同じように機能します。 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 /* 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>