SamsPcbLabパヌト2WP、CSS、PHP、PCB

同じ道をたどる人々に圹立぀かもしれないニュアンスのいく぀かに焊点を圓おお、Web開発の最初の知識なしにWordPressWPでPCB開発者向けのプラットフォヌムを開発した経隓をできるだけ簡単に説明しようず思いたす。たた、䜕かおかしなこずがあったら、専門家のアドバむスを喜んで聞きたす。私は、ハブレのプログラマヌのやや匷力なコミュニティを知っおいたす。WPに぀いおの瞮小された投皿を芋たずき、WPに察する態床を理解し、原則ずしお、そのような゜リュヌションの次善の策を理解しおいたす。しかし、それでも、プラグむンを1぀だけ支払うだけで、3か月で機胜を実装できたした。研究所の友人によるず、そのサヌドパヌティの開発には数十䞇ルヌブルずさらに倚くの時間がかかる可胜性がありたす。そこで、プロゞェクトのパむロットバヌゞョンから始めるこずにしたした。そこからさらに構築するこずが可胜になりたす-たずえば、サヌドパヌティ開発の技術仕様ずしお。





タスクは、次の機胜を備えたPCB開発者向けのプラットフォヌムを䜜成するこずでした。



  • 特定の蚈算のパフォヌマンスを簡玠化する蚈算機。
  • 印刷回路基板の開発のための知識ベヌス。
  • 集合ブログ;
  • プラむベヌトメッセヌゞ。


私は圓初、カスタムモゞュヌルを䜜成せずにWPでこれを実行できるこずに懐疑的でした。1ペヌゞのサむト、ブログ、オンラむンストアは単玔です-はい、しかし゚ンゞニアリング蚈算ですかしかし、すべおがうたくいきたした-抂念の蚌明のためにそれは非垞に良いです、そしおそれから-それに぀いお。構造化するために、個別のケヌスの圢で提瀺したす。



繰り返しになりたすが、私は印刷開発者なので、プラグむンのPHPコヌドを倉曎するこずで、プラグむンに求めおいたものを実珟できたずき、私は倧いに満足したした。぀たり、私が話したいのは、サむトを䜜りたいが、WP、CSS、PHPの耇雑さを理解しおいない人たちですが、䞀般的にはプログラミングを理解しおいお、コヌドを恐れおいたせん。



1.開発ツヌル



プログラムの長い比范分析は行いたせんでした。必芁なタスクが解決されおいれば十分でした。これが私が䜿甚したものです



  • Visual Studio Codeは、プラグむンコヌドを衚瀺および線集するための優れた無料の゚ディタヌです。
  • Firefox Developer Edition-ペヌゞの衚瀺、線集、分析甚。
  • FileZilla-プラグむン/テヌマファむルをサヌバヌず共有するため。
  • TotalCommander-指定されたテキストでファむルを怜玢したす。


ここでは、1぀のWPプラグむンであるLoco Translateも含めたす。これは、プラグむンの翻蚳を䜜成たたは修正するためのかけがえのないツヌルです。



WP自䜓に関しおは、英語のYouTubeセグメントでは、おそらくすべおが䌝えられおおり発生した質問に察する答えが芋぀からなかったこずを芚えおいたせん、倚くの優れたチャネルがありたす。WPBeginnerチャネルずWordPressチュヌトリアルチャネルに぀いお蚀及したす。



2.蚈算機



WPには膚倧な数のプラグむンがありたすが、商品や保険のコストを蚈算しない限り、蚈算を行うこずは䞀般的な䜜業ではありたせん。しかし、このタスクのためのプラグむンがありたす。それを芋぀けたずき、私はそのアむデアが実珟可胜であるこずに気づきたした。蚈算フィヌルドフォヌム-そしお無料版でも、蚈算甚のフォヌムを䜜成するこずができたす。䞀般的に、それは玠晎らしいこずです。むンタヌフェむスず匏゚ディタを理解する必芁がありたすが、それらは論理的で十分に文曞化されおいたす。蚈算機の1぀を䟋ずしお䜿甚するず、線集メニュヌは次のようになりたす。





フォヌムの内容を芖芚的に配眮できるフィヌルドなど、いく぀かのタむプのフィヌルドがありたすが、䞻なフィヌルドは入力倀の遞択たたは盎接入力フィヌルドず出力蚈算倀フィヌルドです。



各フィヌルドには、「fieldnamen」のようなシリアル番号を持぀独自の識別子がありたす。実際、これは、蚈算フィヌルドの蚈算で䜿甚される倉数の名前です。この堎合、サヌビス蚈算フィヌルドを非衚瀺にするこずができたす。



既補の関数の䞭には、䞉角枬量や逆䞉角枬量など、耇雑な蚈算にも必芁なものがすべおありたす。蚈算フィヌルドの構文はあなたはのif-else分岐、JS機胜、およびサヌドパヌティの呌び出しを䜿甚するこずができたすここにあるドキュメントからの䟋。関数構文の䟋



( function() {
if( fieldname3 > 100 ) return fieldname1+fieldname2;
if( fieldname3 <= 100 ) return fieldname1*fieldname2;
} ) ();


非垞に䟿利な機胜は、遞択したフィヌルドの倀に䟝存関係を衚瀺するこずです。これがドキュメントの関連セクションであり、䟋では次のようになりたす。





正盎なずころ、プラグむンは私を救っおくれたした。もちろん、いく぀かの蚈算では数十の蚈算フィヌルドず耇雑な匏があるため、ペヌゞは面倒であるこずが刀明したした。私はそれを飛ばしたいので、私の蚈画は、むンタヌフェヌスを容易にするサヌドパヌティの関数の呌び出しに察凊するこずですが、これを行う方法はただわかりたせん。さお、ここにステップバむステップがありたす、私はそれを理解したす。



経隓からもっず、私は䜕をお勧めしたすか



  1. Excel ( , : «», «POW»), , .
  2. , , . , .
  3. (, ) ' '.
  4. – «Div», . , . «» , «».


3.



䞀郚のプラグむンは無料バヌゞョンで基本的な機胜を提䟛したすが、衚瀺のカスタマむズは非垞に簡単ですが、倖芳をカスタマむズするためのオプションを制限したす。これには、CSSずPHPコヌド自䜓の2぀のツヌルがありたす。アマチュアのためにアマチュアずしお説明したす。



3.1。CSSによるスタむリング



htmlペヌゞの芁玠ごずに、CSSを䜿甚しお衚瀺スタむルを定矩できたす。



CSS- {
_1: ;
_2: ;
}


セレクタヌずプロパティに぀いおグヌグルで怜玢する必芁がありたす。Web開発は、ロシア語であっおも、䞀般的に非垞によく文曞化されおいるため、問題ありたせん。コメントだけさせおいただきたす。



芁玠に適甚されおいるスタむルずその識別子を確認するには、Firefox DeveloperEditionたたは同等のものが必芁です。芁玠を右クリックしお「芁玠の怜査」を遞択するず、チャヌムが衚瀺されたす。







この䟋のセレクタヌを芋おみたしょう。関心のある芁玠は、ナヌザヌ名入力フィヌルドです。 htmlコヌドにはクラスずIDが含たれおいるため、セレクタヌずしお䜿甚できたす。



.input-text input           // ._ _ (. 1)
input.input-text            // _._ (. 2)
#fep-message-top input      // #id _ (. 1)
input#fep-message-top       // _#id (. 2)
#fep-message .input-text    // #id _


同じペヌゞに同じIDを持぀芁玠は存圚できないため、IDセレクタヌはより「匷力」です。したがっお、特定のプラグむンフォヌムが1ペヌゞでのみ䜿甚されおいる堎合、たたは衚瀺スタむルがすべおの堎合に適しおいる堎合は、IDセレクタヌが必芁です。しかし、芁玠にIDが蚭定されおいない堎合はどうなりたすかこれはよくあるこずです。次に、芪ブロック内のidの存圚を確認する䟡倀がありたす。たずえば、この堎合、コンテナのid = "user_box"です。次に、次のように芁玠にアクセスできたす。



div#user_box input      // _#id _


入れ子にするこずはもっずできたす。䟋ずしお



div.fep-field div.field-with-icon input     //      


この堎合、アクセスはIDではないため、このセレクタヌで説明されおいるスタむルは、ナヌザヌ名入力フィヌルドずメッセヌゞ件名入力フィヌルドの䞡方に適甚できたす䞡方ずも「field-with-icon」クラスのコンテナヌ内。



䟿利なもう1぀のオプションは、プロパティ倀セレクタヌです。この䟋の堎合



input[type="text"] //    «type»


本質は倧たかに明らかだず思いたす。ここでは詊行錯誀がうたく機胜したす。優れた点は、Firefox DEを䜿甚するず、ペヌゞコヌド、セレクタヌ、プロパティをその堎で線集できるこずです。目的の結果を達成し、結果の倉曎をサヌバヌに転送したす。これには3぀の方法がありたす。



  • プラグむンでは、蚭定に「カスタムCSS」、「远加スタむル」などのフィヌルドが含たれる堎合がありたす。
  • テヌマの倖芳蚭定でも同じです。
  • CSSを䜿甚しお゜ヌスファむルに倉曎を加えたす䞊の図で匷調衚瀺されおいたす-この方法では、テヌマstyle.cssの䞀般的なスタむルファむルでは成功したせんでした。䜕か泚意が必芁です。


異なるセレクタヌの同じプロパティの倀の間で、優先床が最も高いものが垞に遞択されたす。論理は、ロヌカル定矩がグロヌバル定矩よりも高い優先順䜍を持っおいるずいうこずです。セレクタヌ、぀たり「Important」修食子を䜿甚しおプロパティをオヌバヌラむドできない堎合は、倀の優先床が高くなりたす。



input[type="text"] {
padding-left: 40px !important; //   
}


セレクタヌに぀いお最埌に蚀うこずは、レスポンシブスタむルの「@media」コンストラクトです。これは、最小たたは最倧の衚瀺幅など、特定の条件䞋でセレクタヌをアクティブにしたす。䜿甚䟋は次のずおりです。



@media(max-width:650px) {     //   
   .comment-body .avatar {
        width: 50px !important;    //    
}
}


プロパティ自䜓に関しおは、それらがたくさんあり、特定のタスクのドキュメントを芋る必芁がありたす。最も簡単な方法は、色、䜍眮を倉曎し、完成したスタむルをコピヌするこずです。FirefoxDEでその堎で色を遞択するず䟿利です。配眮に関しおは、「display」プロパティのさたざたな倀を理解し、たずえばこの蚘事を読む必芁がありたす。



3.2。PHPで衚瀺をカスタマむズする



PHPプラグむンコヌドを線集する2぀の䞻な理由は、テキストの眮換ずペヌゞレむアりトの線集です。



3.2.1。テキストの眮き換え



最初のものに぀いおは、友奜的な方法で、プラグむン自䜓の蚭定メニュヌを䜿甚するか、LocoTranslateプラグむンを䜿甚しお解決する必芁がありたす。プラグむンのロヌカリれヌションは䞀般的にどのように機胜したすかWPコン゜ヌルの䞀般蚭定でサむト蚀語が遞択され、これによっお䜿甚される倉換ファむルが決たりたす。翻蚳ファむル拡匵子.poの構造は次のずおりです。



#: utilities.php:1910 utilities.php:2095     //     
msgid "Lost your password?"                    //  
msgstr " ?"                        // 


Utilities.phpファむルの察応する行たずえば、1910番目には、次のものがありたす。



$str .= '<div class="impu-form-links-pass"><a href="'.$lost_pass_page.'">'.__('Lost your password?', 'ihc').'</a></div>';


ここでは、プラグむン 'ihc'の元の文字列ずテキストドメむンのIDを確認でき、その結果、翻蚳された文字列が眮き換えられたす。Loco Translateは、翻蚳ファむルを操䜜するためのシンプルで䟿利なむンタヌフェむスを提䟛したす。





これらの行には、出力圢匏を定矩する文字s、dなどが含たれおいる堎合がありたす。-翻蚳では、もちろん、それらを保存する必芁がありたす。ちなみに、数字が違うず゚ンディングが違う「3コメント」「5コメント」ずいう問題がありたすので、抜け出さないずいけたせん。



そのため、開発者が翻蚳ファむルの゚ントリを瀺さない堎合、䞊蚘の方法では到達できない堎合がありたす。あなたは違ったふるたいをしなければなりたせん。すべおのプラグむンファむルは/ wp-content / plugins / plugin_nameディレクトリからダりンロヌドされ、行たたは行の䞀郚による怜玢Total Commanderたたは類䌌のヘルプを䜿甚しお、それを含むphpファむルを怜玢したす「ではなく、䞀意である堎合に適しおいたす」ログむンする "。たた、コヌド内の文字列を盎接眮き換えるか、翻蚳ファむルに゚ントリを入力しお目的の翻蚳を行うこずができたす。



3.2.2。レむアりトの線集



プラグむンたたはテヌマの蚭定で倉曎されないものを倉曎したい堎合に、状況が発生する可胜性がありたす。ここで1぀の䟋を芋おいきたす。このセクションが興味や質問を匕き起こした堎合、私はそれを補足したす。䜕よりも、私は個人的な通信のためにフロント゚ンドPMプラグむンを倉曎しおいたした。人気のない機胜なので、おそらくこれがそれを実装する唯䞀のプラグむンであるため、衚瀺郚分の詳现は䜎くなりたす。ペヌゞの䞊郚ブロックを圢成しおいた元のファむルを元に戻し、それがどのように順番に行われたかを瀺したした。





「InspectElement」から、倉曎するブロックを芋぀けお、怜玢甚の䞀意の識別子を探したす。これらは、たず、プラグむン固有のクラス名たたはIDです。ここでは、id =“ fep-header”が共通コンテナに蚭定されおいたす。行の出珟を怜玢するず、わかりやすい名前header.phpのファむルが衚瀺されたす。 VSコヌドで開き、次のコヌドを確認したす。



<div id="fep-header" class="fep-table">
        <div>
            <div>
                <?php echo get_avatar( $user_ID, 64, '', fep_user_name( $user_ID ) ); ?>
            </div>
            <div>
                <div>
                    <strong><?php esc_html_e( 'Welcome', 'front-end-pm' );?>: <?php echo fep_user_name( $user_ID ); ?></strong>
                </div>
                <div>
                    <?php echo strip_tags( sprintf( __('You have %1$s and %2$s unread', 'front-end-pm'), '<span class="fep_unread_message_count_text">' . sprintf( _n( '%s message', '%s messages', $unread_count, 'front-end-pm' ), number_format_i18n( $unread_count ) ) . '</span>', '<span class="fep_unread_announcement_count_text">' . sprintf( _n( '%s announcement', '%s announcements', $unread_ann_count, 'front-end-pm' ), number_format_i18n( $unread_ann_count ) ) . '</span>' ), '<span>' ); ?> 
                </div>
                <div class="<?php echo $box_class; ?>">
                    <?php echo strip_tags( sprintf( __( 'Message box size: %1$s of %2$s', 'front-end-pm' ), '<span class="fep_total_message_count">' . number_format_i18n( $total_count ) . '</span>', $max_text ), '<span>' ); ?>
                </div>
            </div>
            <?php do_action( 'fep_header_note', $user_ID ); ?>
        </div>
    </div>


私のようにPHPに慣れおいない人にずっおは、HTMLのように芋えたすが、<Php ... code ...> Insertsがありたす。これらの挿入は、ナヌザヌデヌタなどのさたざたなパラメヌタヌに応じお、HTMLペヌゞを圢成するために䜿甚されたす。぀たり、PHPはそのような静的なペヌゞコンストラクタであり、JavaScriptは耇雑なむベントを凊理するために䜿甚されたす。



より詳现なプラグむンからトップパネルのスタむルをコピヌし、メヌルボックスのサむズに関する䞍芁な情報を削陀し、新しいメッセヌゞに関する情報の衚瀺方法を倉曎したした。これは、コヌドずディスプレむで起こったこずです。



<div class="fep-header">
        <div class="fep-header-left-side">
            <div class="fep-user-page-avatar">
                <?php echo get_avatar( $user_ID, 96, '', fep_user_name( $user_ID ) ); ?>
            </div>
        </div>
        <div class="fep-header-right-side">
            <div class="fep-header-username">
                <?php echo fep_user_name( $user_ID );?>
            </div>
            <div class="fep-header-top-info">
                <?php
                    if( $unread_count == 0 && $unread_ann_count == 0 )
                    {
                        echo sprintf( __('    .', 'front-end-pm'));
                    }else{
                        if( $unread_count != 0 )
                            echo sprintf( __(' : %d<br>', 'front-end-pm'), $unread_count);
                        if( $unread_ann_count != 0 )
                            echo sprintf( __(' : %d', 'front-end-pm'), $unread_ann_count);
                    }
                ?>
            </div>
        </div>
        <?php do_action( 'fep_header_note', $user_ID ); ?>
        <div class="fep-top-background"></div>
    </div>




圓然、このプロセスは反埩的であたり䟿利ではありたせんが、私は蟞任したした。おそらくもっず䟿利な方法がありたす。ファむルを保存しVSコヌド、サヌバヌ䞊のファむルを眮き換えFileZilla、ペヌゞを曎新したすFirefoxDE。これは最も難しいケヌスではありたせんが、プロセスの本質を瀺しおいたす。ブロックを亀換したり、䞍芁なブロックを削陀したりする必芁がある堎合は、関数、クラス、デヌタ配列が倉曎された、より耇雑なタスクでも、より単玔なタスクでも同じです。



ただし、このアプロヌチでは、曎新プロセスがはるかに困難になりたす。曎新埌、おそらく「機胜し、良奜である」ずいう原則に埓っお機胜する限り、私はそれをしたせんでした、線集をやり盎す必芁がありたす。これがおそらく䞻な欠点です。



4.パフォヌマンス



WPはスピヌドではありたせん。正盎なずころ、ダりンロヌド速床を向䞊させようずしおも、倧幅な増加には至りたせんでしたが、誀動䜜に぀ながりたした。AssetCleanUpプラグむンを䜿甚しお䞍芁なCSS / JSの読み蟌みを削陀したしたが、読み蟌み速床の目立った向䞊には気づきたせんでしたGTmetrixを調べたしたが、䞀郚のプラグむンは、そこで䜿甚されおいるかどうかに関係なく、すべおのペヌゞで䞊昇しおいるこずに気付きたした。その結果、今はオフにしたした。それから私はW3トヌタルキャッシュを詊したしたサヌバヌにペヌゞをキャッシュする堎合-ペヌゞがPHPを䜿甚しお生成されおいないが、準備ができたコピヌがロヌドされおいる堎合定期的に曎新されたす。しかし、それで私のサむトがクラッシュし、ログむンしたナヌザヌのペヌゞをキャッシュしないこずをお勧めする蚭定であるこずがわかりたした。私の堎合、ペヌゞのキャッシュを蚭定するのは非垞に難しいこずが明らかになりたした。コヌドの䞀郚の郚分的なキャッシュのみを残したした。それをさらに理解したすプラグむン蚭定の倉曎を有効にするには、キャッシュをリセットする必芁がある堎合がありたす。



䞀般的に、うたくいく堎合もあるず思いたすが、すぐに箱から出しおすぐには圹に立ちたせんでした。私が理解しおいるように、有料のWP Rocketにはナヌザヌごずにキャッシュオプションがありたす。埌で詊しおみるかもしれたせん。



5.セキュリティ



か぀お研究所で圌は専門の「情報セキュリティ」を研究したした。卒業埌、圌は電子機噚に埓事し始めたしたが、専門的な倉圢は残っおいたした。むンタヌネットがセキュリティの面でリヌクしおいるこず。積み重ねられた構造のWPにはいく぀の脆匱性があるか想像できたす。すべおの人にパッチを適甚できるわけではありたせんが、この手順の足跡をたどっお最も簡単なこずを行い、Wordfenceをむンストヌルしたした。パフォヌマンスがそれほど䜎䞋しないかどうかを確認したしょう。そのたたにしおおくこずができたす。



6.プラグむン



6.1。ナヌザヌずアクセスの管理



この問題を解決するために、Indeed Ultimate Membership Proプラグむン$ 41を遞択したした。そこには別のビデオチュヌトリアルがありたす-ここに。たくさんの蚭定をいじくり回さなければなりたせんでしたが、すべおに぀いお詳しく曞くこずはしたせん。質問がある堎合は、コメントたたはプラむベヌトメッセヌゞで回答したす。アクセス制埡の方法に぀いおのみ説明したす。

基本的に、システムにはいく぀かの圹割があり元々はブログ甚に調敎されおいたした、倚くのプラグむンがそれらず連携しお、圹割に応じお機胜を制埡したす。デフォルトの圹割は「蚭定>䞀般」で蚭定されおいたす。





サブスクリプション管理プラグむンは、別のレベル、぀たりサブスクリプションレベルを远加したす。これに埓っお、コンテンツぞのアクセスず、メニュヌ項目の衚瀺を含む各ペヌゞの衚瀺を制埡できたす。たた、ナヌザヌは登録枈みず未登録に分けられたす。これは、コンテンツの衚瀺を分離するもう1぀の方法です。



プラグむンには欠陥がないわけではありたせんが、その圹割は果たしたす。倚くの蚭定がありたすが、トレヌニングビデオがあり、それを理解するこずができたす。技術サポヌトは、どちらかずいえば、サポヌトしお教えおくれたす。



6.2。知識ベヌス



最初は、pdfビュヌアプラグむンを䜿甚しお本をプラットフォヌムに配眮したしたが、資料ぞのリンクを䜜成する方法がなく、pdfは衚瀺するための最も柔軟なオプションではありたせん。拒吊し、ナレッゞベヌスに行くこずにしたした。プラグむンをEchoKnowledge Baseず呌びたす、それは本圓に良いです。しかし、pdfの衚瀺に関しおは、Flowpaperプラグむンに぀いお蚀及せずにはいられたせん。非垞に矎しく、誰かに圹立぀かもしれたせん。



6.3。投祚



私はYopPollプラグむンが奜きでした-繰り返したすが、必芁なものはすべおあり、すべおの蚭定があり、無料バヌゞョンでは芋た目もかなり良いです。



7.䜕がうたくいかなかった



集合的なブログには、ナヌザヌが投皿を䜜成する機胜が必芁です。遞択は玠晎らしいものではありたせん-UserSubmitter Postsプラグむンそのような有料のものもありたす。有料版も賌入したしたが、承認フォヌムが削陀され、サブスクリプション管理プラグむンずの競合が発生したした。返金したしたが、開発者は問題を解決せず、他のプラグむンのすべおを非難したした。しかし、それは重芁ではありたせん。パブリケヌション䜜成フォヌムには、画像をアップロヌドしおパブリケヌションに挿入する機䌚はありたせん。





暩利の取り扱いを開始し、䟿利で、䟿利なプラグむンUser RoleEditorをむンストヌルしたした。そのため、ナヌザヌにすべおのペヌゞを線集する暩限が䞎えられた堎合にのみ、画像をロヌドするこずが刀明したした。もちろん、Tin fullは無効になっおいたすが、画像ぞのURLリンクのみを配眮できたす。ここでの問題は、投皿がただ存圚せず、WPが投皿䜜成フォヌムを含むペヌゞを線集するずきに画像を远加するこずを怜蚎しおいるこずです。倚分誰かがこのプラグを解決する方法を教えおくれるでしょうか



8.結論



WPは、最も単玔な機胜ではないプラットフォヌムのパむロットプロゞェクトを最小限のコストで䜜成するこずを可胜にしたした。圌はさらなる発展のための出発点を䜜るこずによっお圌の問題を解決したした。投皿の内容に぀いお他にご䞍明な点がございたしたら、お気軜にお問い合わせください。たた、スペシャリストのコメントず掚奚事項にも感謝したすパフォヌマンスを向䞊させるために、CloudFlareのようなCDN、有料のWP Rocket、WP Engineのような特殊なホスティング、たたはWordfenceが実際に必芁になりたす。



皆さんお元気で



All Articles