WordPress

WordPressの開発者および管理者向けのQ&A

1
完全なHTML入力を取得するtextareaを安全にサニタイズする方法
ユーザーがWordPress管理画面からHTMLメールを送信できるようにするプラグインを開発しています。textarea入力をどのようにサニタイズする必要がありますか?HTMLメールに表示される可能性のあるHTMLタグの全範囲を含めることができる必要があります。私が使用する場合wp_kses()、許可されたタグの膨大なリストを使用する必要があります。 textareaは、カスタムオプションを介してそのコンテンツをデータベースに保存します。

2
WordPress 3.9-新しいTinyMCEの編集に関する問題
WordPress 3.9が間もなく登場し、TinyMCE 4.0が登場します。いくつかのテストでプラグインと関数を実行していると、私の関数の1つが壊れている/新しいtinyMCEで動作していないように見える function myformatTinyMCE( $in ) { $in['theme_advanced_buttons1'] = 'bold'; $in['theme_advanced_buttons2'] = 'formatselect'; $in['wordpress_adv_hidden'] = false; return $in; } add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' ); 上記の関数はtinyMCEのボタンを特定のボタンに制限するために使用されていましたが、テストを簡単にするために少し簡略化しました。印刷する$inと、正しい場所に正しい値が表示されますが、実際にページをロードすると、デフォルトで通常のボタンが表示されます。 また、TinyMCE Codexの例を使用しようとしましたが、これも効果がないようです。 WordPressベータテスタープラグインを使用していますが、TinyMCE Advancedをインストールしていますが、無効にしています。 新しいTinyMCEでは、どのようにして引き続き/カスタマイズを行うことができますか?以前のTinyMCEバージョンから変更された 'Gotchas'はありますか? 編集 $in['wordpress_adv_hidden'] = false;使用されなくなったようです-キッチンシンクを再表示する方法はわかりません。

3
CSVをカスタム投稿タイプのカスタムフィールドにインポートする方法
カスタム投稿タイプを作成し、プラグインを使用してその投稿タイプのカスタムフィールドを作成しました。 メンバーシップのタイプが表示されます:名前アドレスZipウェブサイト しかし、700エントリのcsvファイルを取得してインポートし、作成したCPTの下に700エントリを作成して、作成したカスタムフィールドに自動入力する方法に行き詰まっています。 私はたくさんのプラグインを試しましたが、両方の部分を行うようには見えませんでした。CTPを選択するだけの人もいますが、すべてのフィールドに入力することができませんでした。 これを達成するための最良の方法を知る必要があるだけです。

3
カスタムフィールド出力を代替するときに、フィルターをフックしてget_post_metaをキャッチする方法
カスタムフィールド出力を代替するときに、フィルターをフックしてget_post_metaをキャッチする方法 次のように、投稿にカスタムフィールド(メタデータ)を入力します。 <!--:de-->Nominale spanning<!--:--><!--:zh/cn-->额定电压<!--:--><!--:en-->Arrester Accessories<!--:--> この出力を翻訳する必要があるので、メタデータ出力の前に「get_post_meta」にフックする方法を知りたいです。 数日間試してみましたが、うまくいきません。 function getqtlangcustomfieldvalue($metadata, $object_id, $meta_key, $single){ $fieldtitle="fields_titles"; if($meta_key==$fieldtitle&& isset($meta_key)){ //here is the catch, but no value has been passed } } //Specify 4 arguments for this filter in the last parameter. add_filter('get_post_metadata', 'getqtlangcustomfieldvalue', 10, 4);

4
投稿にコンテンツがある場合
1ページのWordPressサイトを立ち上げています。自分のサイトにコンテンツがないページがいくつか表示されています。たとえば、空のブログページとブログテンプレートを取得します。そのため、ページにコンテンツが含まれているかどうかを確認するためにチェックを入れて、その情報を投稿できるかどうかを考えました。うまく動かないのですが。ホームページにカスタムクエリを使用しています。だから私はこれができると思った if ( $page_query->have_posts() ) : while ( $page_query->have_posts() ) : $page_query->the_post(); if( $page_query->post_content != ''){ get_template_part( 'content', get_post_format() ); } endwhile; endif; 問題は、そのコードでエラーが発生し、理由がわからないことです。このエラーが発生する 通知:未定義のプロパティ:WP_Query :: $ post_content in
9 content 

2
メタボックス: 'admin_init'または 'add_meta_boxes'フック?
カスタム投稿タイプでメタボックスを設定するとき、add_meta_boxesフックを使用して設定しました。 add_action('add_meta_boxes', 'meta_box_setup'); function meta_box_setup() { add_meta_box( 'mb_movie_review', 'Movie Review Details', 'display_movie_review_mb', 'movie-reviews', 'side', 'high' ); } しかし、私はフックを使用して次のようにするこのチュートリアルを読んだところadmin_initです... add_action('admin_init', 'meta_box_setup'); function meta_box_setup() { add_meta_box( 'mb_movie_review', 'Movie Review Details', 'display_movie_review_mb', 'movie-reviews', 'side', 'high' ); } admin_initフックを使用してこれを実行したのは初めてです。 質問 後者の方法(を使用admin_init)は機能しますが... これは好ましい方法ですか?(つまり、より最適化されていますか?) 同じ結果を達成するためのちょうど異なる方法、または メタボックスを追加するための悪い方法?(もしそうなら、なぜですか?)

4
GoogleBotからサーバーを停止する/xmlrpc.phpへの多くのPOSTリクエスト?
私はいくつかのワードプレスブログをホストしており、それらを訪問しようと試みており、それらは本当に遅いです。サーバーのログを見て、これを見つけました stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0" stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0" stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0" stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 …

2
投稿が互いに近づきすぎて公開されないようにするにはどうすればよいですか?
私は約25人のライターで構成されるブログを管理しています。時々それらのいくつかはすぐに新しい投稿を書いている最中で、彼らはお互いに近すぎてそれらを公開することになります。 これを防ぐ方法はありますか?「別の投稿が最後の5分以内に公開されました。あなたの投稿を公開するには55分待つ必要があります。」

1
プログラムでpage_on_frontを設定する
get_page_by_titleコマンドから取得したid値を使用して、「page_on_front」オプションをプログラムで設定しようとしています... $homepage = get_page_by_title( 'Front Page' ); update_option('page_on_front', $homepage); update_option('show_on_front', 'page'); これは機能していません、誰か助けてもらえますか?
9 frontpage 

3
プラグインでjQuery UIを使用する方法
私がGoogleで何かを返しても何も返さないのは、世界で悲しい日です。デフォルトの日付ピッカー(またはこの時点では任意の日付ピッカー)を使用しようとしていますが、Wordpress / PHPに関する知識がないために使用できません。私のプラグインでは、jqueryとuiを登録しようとしていますが、その過程でWordPressの他の部分が壊れているようです。誰かが私が間違っていることを教えてもらえますか?彼らが実用的な解決策を提供できる場合、私はすべてのコードをスクラップします: add_action('init', 'add_styles'); function add_styles(){ wp_deregister_style('simpleschoolstyles'); wp_register_style('simpleschoolstyles', SSM_STYLEFILE); wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'); wp_deregister_script( 'jquery-ui' ); wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js'); wp_deregister_style( 'jquery-ui' ); wp_register_style( 'jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' ); wp_deregister_script('maskedinput'); wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js'); wp_deregister_script('simpleschool'); wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js'); } add_action('wp_enqueue_scripts', 'load_scripts'); add_action('admin_enqueue_scripts', 'load_scripts'); function load_scripts() { wp_enqueue_style('jquery-ui'); wp_enqueue_style('simpleschoolstyles'); wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui'); …

2
wp_enqueue_style()を使用してスタイルをエンキューする方法
テーマを開発しています。以下にコードをに追加しましたheader.php。しかし、私はそれをWPテーマリポジトリに投稿し、現在レビュー中です。レビュー担当者は、スタイルをwp_enqueue_style()/でエンキューするように私に通知しましたwp_enqueue_script()。しかし、関数でそれを実装する方法を理解できません。wp_enqueue_style();Codexで指示されたのを見たことがありますが、コードの束全体をその条件と一緒に配置する方法を理解できません。 <style type="text/css"> <?php // If the menu presents, then CSS loads if ( has_nav_menu( 'secondary' ) ) { ?> .sec-menu{ width: 100%; background: #333; height: 26px; font-size:16px; text-transform:uppercase; } <?php } ?> <?php if ( has_nav_menu( 'primary' ) ) { ?> #access{ background-color: #333; height: 26px; } <?php } …

1
マルチサイトのプラグインのアンインストールスクリプト
uninstall.phpプラグインに沿った従来のファイルがマルチサイトで機能しないことに気づきました。 if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); delete_option( 'plugin_option_name' ); これにより、すべてのwp_SITE-ID_optionsテーブルのサブサイトオプションが削除されるわけではありません。 これを行うための標準的な方法はありますか?

4
カテゴリを「wp-admin / post-new.php」に追加する方法は?
カテゴリも設定する新しい投稿を作成するためのリンクが欲しい。 私が試してみましたwp-admin/post-new.php?post_category=12とwp-admin/post-new.php?cat=12、どちらも働きました。また、カテゴリのIDではなく名前を使用してみました。影響もありませんでした。 デフォルトのカテゴリで新しい投稿へのリンクを作成するにはどうすればよいですか?


4
URLの記号を変更せずにGoogle Webフォントをエンキュー
通常の方法でGoogle Web Fontsをエンキューする、つまり、次のwp_enqueue_styleような関数を使用する... function wpse_google_webfonts() { wp_enqueue_style( 'google-webfonts', 'http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700' ); } add_action( 'wp_enqueue_scripts', 'wpse_google_webfonts' ); ...次のlinkようにヘッダーに配置されたタグになります: <link rel='stylesheet' id='google-webfonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed%7COpen+Sans%3A400italic%2C700italic%2C400%2C700&ver=3.5' type='text/css' media='all' /> ご覧のとおり、結果のURLはエンコードされています。 私はそれが問題を引き起こさないと確信していますが、物事を明確かつ明確に保つために、私は先に進んで質問したいと思いfunctions.phpます-URLが出力する方法で(プラグインではなく)Google Web Fontsをエンキューする方法はありますかエンコードされていませんか? それはそうです: <link rel='stylesheet' id='google-webfonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700?ver=3.5' type='text/css' media='all' /> バウンティの理由 @webawareの答えはほぼ完璧です。これは、Twenty Twelveテーマの「Open Sans」Google Web Fontをエンキューするのに使用されている方法に似ているためです。 出力の唯一の問題は、次のようになることです。 <link rel='stylesheet' id='twentytwelve-fonts-css' href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed|Open+Sans:400italic,700italic,400,700&subset=latin,latin-ext' type='text/css' media='all' /> に注意して&ください?それ&以外の場合は、提供されるフォントファイルにはlatinグリフのみが含まれます(つまりsubset、URL …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.