welcart ユーザー権限のカスタマイズ

Filed under: functions.php,welcart — kdcs @ 20年9月3日 木曜日

WordPressのユーザーを「投稿者」にすると商品マスターと新規商品登録しかできない。
このユーザー権限を変更してwelcartのメニューが使えるようにする。

function.phpに以下を記述
※必要のない項目は除外すればよい

    function remove_menus () {
      if (!current_user_can('administrator')) { // 管理者権限以外
        global $menu;
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_initial'); // 基本設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_delivery'); // 配送設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_mail'); // メール設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_cart'); // カートページ設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_member'); // 会員ページ設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_system'); // システム設定
        remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_settlement'); // クレジット決済設定
      }
    }
    add_action('admin_menu', 'remove_menus');

WordPress 投稿(デフォルト)のタグをチェックボックス化

Filed under: functions.php,wordpress — kdcs @ 20年8月20日 木曜日

カスタム投稿タイプのカスタムタクソノミー(カテゴリー・タグ)を作成時、
タグをチェックボックス化する場合、「’hierarchical’」をtrueにすればよいが、
デフォルトの投稿の場合は以下をfunctions.phpに記述する

2~7行の記述は必要ないかも・・・

function post_tag_checkbox() {
  global $wp_rewrite;
  $rewrite = array(
    'slug' => get_option('tag_base') ? get_option('tag_base') : 'tag',
    'with_front' => ! get_option('tag_base') || $wp_rewrite->using_index_permalinks(),
    'ep_mask' => EP_TAGS,
  );
 
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' => __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ),
    'view_item' => __( 'View Tag' ),
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'not_found' => __( 'No tags found.' )
  );
 
  register_taxonomy( 'post_tag', 'post', array(
    'hierarchical' => true,
    'query_var' => 'tag',
    'rewrite' => $rewrite,
    'public' => true,
    'show_ui' => true,
    'show_admin_column' => true,
    '_builtin' => true,
    'labels' => $labels
  ));
}
add_action( 'init', 'post_tag_checkbox', 1 );

WordPress カスタム投稿タイプの作成 2013年版

Filed under: functions.php,wordpress — kdcs @ 20年8月18日 火曜日

WordPress カスタム投稿タイプとカスタムタクソノミー(カテゴリー・タグ)の作成

functions.php

// カスタム投稿タイプを作成する
add_action('init', 'add_websites_post_type');
function add_websites_post_type() {
    $params = array(
            'labels' => array(
                    'name' => 'サイト',
                    'singular_name' => 'サイト',
                    'add_new' => '新規追加',
                    'add_new_item' => 'サイトを新規追加',
                    'edit_item' => 'サイトを編集する',
                    'new_item' => '新規サイト',
                    'all_items' => 'サイト一覧',
                    'view_item' => 'サイトの説明を見る',
                    'search_items' => '検索する',
                    'not_found' => 'サイトが見つかりませんでした。',
                    'not_found_in_trash' => 'ゴミ箱内にサイトが見つかりませんでした。'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array(
                    'title',
                    'editor',
                    'author',
                    'custom-fields',
            ),
            'taxonomies' => array('websites_category','websites_tag')
    );
    register_post_type('websites', $params);
}
// カスタム投稿タイプ(websites)用のカテゴリ&タグを作成する
add_action('init', 'create_websites_taxonomies');
function create_websites_taxonomies() {
    // カテゴリを作成
    $labels = array(
            'name'                => 'Webカテゴリ',        //複数系のときのカテゴリ名
            'singular_name'       => 'Webカテゴリ',        //単数系のときのカテゴリ名
            'search_items'        => 'Webカテゴリを検索',
            'all_items'           => '全てのWebカテゴリ',
            'parent_item'         => '親カテゴリ',
            'parent_item_colon'   => '親カテゴリ:',
            'edit_item'           => 'Webカテゴリを編集',
            'update_item'         => 'Webカテゴリを更新',
            'add_new_item'        => '新規Webカテゴリを追加',
            'new_item_name'       => '新規Webカテゴリ',
            'menu_name'           => 'Webカテゴリ'        //ダッシュボードのサイドバーメニュー名
    );
    $args = array(
            'hierarchical'        => true,
            'labels'              => $labels,
            'rewrite'             => array( 'slug' => 'websites_cat' )
    );
    register_taxonomy( 'websites_category', 'websites', $args );

    // タグを作成
    $labels = array(
            'name'                => 'Webタグ',        //複数系のときのタグ名
            'singular_name'       => 'Webタグ',        //単数系のときのタグ名
            'search_items'        => 'Webタグを検索',
            'all_items'           => '全てのWebタグ',
            'parent_item'         => null,
            'parent_item_colon'   => null,
            'edit_item'           => 'Webタグを編集',
            'update_item'         => 'Webタグを更新',
            'add_new_item'        => '新規Webタグを追加',
            'new_item_name'       => '新規Webタグ',
            'separate_items_with_commas'   => 'Webタグをコンマで区切る',
            'add_or_remove_items'          => 'Webタグを追加or削除する',
            'choose_from_most_used'        => 'よく使われているWebタグから選択',
            'not_found'                    => 'アイテムは見つかりませんでした',
            'menu_name'                    => 'Webタグ'        //ダッシュボードのサイドバーメニュー名
    );
    $args = array(
            'hierarchical'            => false,    //trueでタグをチェックボックス化
            'labels'                  => $labels,
            'update_count_callback'   => '_update_post_term_count',    //タグの動作に必要なCallback設定
            'rewrite'                 => array( 'slug' => 'websites_tag' )
    );

    register_taxonomy( 'websites_tag', 'websites', $args );
}

WordPress 5.4のログイン画面カスタマイズ

Filed under: css,functions.php — kdcs @ 20年4月22日 水曜日

WordPress 5.4のログイン画面では入力フォームに外枠線が入ったり、ログインエラー時のシェイクが従来のカスタマイズ(function.php)では制御できなくなっていたので修正。

シェイクはjavascriptではなくcssのanimationで実装されているのでfunction.php内に以下のcssを記述

body.login div#login #loginform.shake { animation: none;transform: none; }

従来の「ログインエラーのシェイクを止める」を削除

//ログインエラーのシェイクを止める -------------------------------------------------------
function stop_login_error_shake() {
	remove_action( 'login_head', 'wp_shake_js', 12 );
}
add_action( 'login_head', 'stop_login_error_shake' );

function.phpの管理画面用css

//ログイン画面のカスタマイズ -------------------------------------------------------------
    function my_custom_login() { ?>
    <style type="text/css">
    body.login div#login { background: #fff url(<?php echo get_stylesheet_directory_uri(); ?>/images/logo_login.png) no-repeat left center; }
    body.login div#login { width:680px;padding:10px 0 0 0;margin:100px auto 0 auto;}
    body.login div#login { border:solid 1px #e4e4e4;border-radius: 10px;}
    body.login div#login h1 { display:none;}
    body.login div#login #loginform { width: 320px; margin:0; padding: 5px 10px 10px 10px;position:relative;left:330px;box-shadow:none;border: none;}
    body.login div#login #loginform.shake { animation: none;transform: none; }
    body.login div#login p#nav {margin: 0;}
    body.login div#login p#nav a,
    body.login div#login p#backtoblog a { display: none; }
    body.login div#login #login_error a { display:none; }
    body.login div#login p.message { margin-left: 8px; }
    body.login div#login_error { margin: 0 10px; padding: 5px 10px; text-align: center; border: 1px solid #dd3d36; box-shadow:none; }
    body.login .message { margin: 0 10px; padding: 5px 10px; text-align: center; border: 1px solid #2ea2cc; box-shadow:none; }

@media screen and (max-width:670px) {
    body.login div#login h1 { display:block;height: 160px; width:320px;background: url(<?php echo get_stylesheet_directory_uri(); ?>/images/logo_login.png) no-repeat 0 0;}
    body.login div#login h1 a { display:none; }
    body.login div#login { width:320px;}
    body.login div#login { background-image:none; background-color: #fff; }
    body.login div#login #loginform { width:300px; padding: 5px 10px 10px 10px;position:relative;left:0px; box-shadow:none;}
 }
    </style>
    <?php }
    add_action( 'login_enqueue_scripts', 'my_custom_login' );

WordPress 人気記事ランキングをプラグイン無しで表示させる

Filed under: css,functions.php,wordpress — kdcs @ 20年1月31日 金曜日

人気記事をランキング表示させるプラグイン「WordPress Popular Posts」もあるが、プラグインに頼らずに行う方法。

・カスタムフィールドにアクセスカウントを格納する
・カウントはセッション毎に行う
・wp_headをフックに使用

※画像表示について
アイキャッチ画像がある場合はアイキャッチ画像を表示。
アイキャッチ画像が無い場合は記事内の最初の画像を表示。
アイキャッチ画像も記事内の画像も無い場合はデフォルト画像を表示させる。
(続きを読む…)

サイト内検索

カテゴリー

最近の投稿

↑上に戻る