web-dev-qa-db-ja.com

主ボタンクラスと副ボタンクラス

私はデフォルトのWordPressボタンクラスを使って関数内のいくつかのボタン(下記)をスタイルしようとしていますが、ボタンは表示されていません(ハイパーリンクされたテキストだけが表示されています)。

また、すべてのプラグインを無効にしてデフォルトのWPテーマに切り替えてボタンが表示されるかどうかを確認しましたが、この問題は解決しません。 aタグまたはクラス自体に問題があるのでしょうか。

これが関数です:

add_filter( 'upme_profile_edit_bar','upme_profile_edit_bar', 10, 3 );
function upme_profile_edit_bar( $edit_buttons , $id, $params ) {
    $edit_buttons .= '<a class="button button-primary" href="http://myurlhere.com" >Custom Button 1</a>';   
    $edit_buttons .= '<a class="button button-secondary" href="http://myotherurlhere.com" >Custom Button 2</a>';
    return $edit_buttons;
}

ご協力ありがとうございます。

4
irishrunner16

フロントエンドでWordPressadminスタイルのクラスを使用しようとしているようです。ただし、これらのスタイルは読み込まれません。 2つのオプションがありますが、そのうちの1つはお勧めしません。

方法1:これを行う

が推奨するのはあなたが望むボタンスタイルをコピーして、あなたの 子テーマ またはカスタムCSSプラグイン( 、多くのいずれか)。

以下に、それらを引き出してクリーンアップするための最初のパスを示します。

.button,
.button-primary,
.button-secondary {
    display: inline-block;
    text-decoration: none;
    font-size: 13px;
    line-height: 26px;
    height: 28px;
    margin: 0;
    padding: 0 10px 1px;
    cursor: pointer;
    border-width: 1px;
    border-style: solid;
    -webkit-appearance: none;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    white-space: nowrap;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.button,
.button-secondary {
    color: #555;
    border-color: #cccccc;
    background: #f7f7f7;
    -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
    box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
    vertical-align: top;
}

p .button {
    vertical-align: baseline;
}

.button:hover,
.button-secondary:hover,
.button:focus,
.button-secondary:focus {
    background: #fafafa;
    border-color: #999;
    color: #222;
}

.button:focus,
.button-secondary:focus {
    -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
    box-shadow: 1px 1px 1px rgba(0,0,0,.2);
}

.button:active,
.button-secondary:active {
    background: #eee;
    border-color: #999;
    color: #333;
    -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
    box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
}

.button-primary {
    background: #2ea2cc;
    border-color: #0074a2;
    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
    box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
    color: #fff;
    text-decoration: none;
}

.button-primary:hover,
.button-primary:focus {
    background: #1e8cbe;
    border-color: #0074a2;
    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
    box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
    color: #fff;
}

.button-primary:focus {
    border-color: #0e3950;
    -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
    box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
}

.button-primary:active {
    background: #1b7aa6;
    border-color: #005684;
    color: rgba(255,255,255,0.95);
    -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
    vertical-align: top;
}

これには次の利点があります。

  1. WordPressがクラス名またはスタイルを変更した場合でも、ボタンのスタイルを維持するようにします。
  2. WordPressがスタイルシートファイルを移動しても、スタイルは取得されます。
  3. これらはまさにあなたが望むものです。別の方法は、不要なスタイルを追加することです。

方法#2:これをしないでください

なぜこれを含めているのかは定かではありませんが、誰かにとって役に立つかもしれません。別の方法は、フロントエンドでWordPressボタンスタイルを読み込むことです。これには、上記の方法#1の利点とは反対のすべての欠点があります。

これを行うには、次の2つのことが必要です。1.スタイルシートをロードします。 1.すべてのスタイルがクラスwp-core-uiを持つ要素にラップされている場合にのみ機能するため、マークアップを変更します。 (これらのスタイルをロードすることは意図されておらず、悪い考えであることを教えてください!

スタイルをロードするには、子テーマのfunctions.phpファイル、カスタムプラグイン、またはmu-pluginでこれを行います。

function wpse159952_load_wp_button_styles() {
    wp_enqueue_style( 'wpse159952_wp_button_styles', includes_url() . 'css/buttons.css', array(), get_bloginfo( 'version' ) );
}
add_action( 'wp_enqueue_scripts', 'wpse159952_load_wp_button_styles' );
3
mrwweb