jaký je nejrychlejší způsob, jak vytvořit widget?
<p>mám nějaký php kód, který bych rád vytáhl z existující stránky šablony a vložil do widgetu, abych ji mohl přesunout.</p><p>jaký je nejrychlejší způsob vytvoření widgetu?</p>
<p>rozhraní api <a href="http://codex.wordpress.org/widgets\_api#developing\_widgets\_on\_2.8.2b">widgetů</a> je nejrychlejší způsob, jak vytvořit widget, který lze znovu použít. příklad použití:</p><pre><code>class my\_widget extends wp\_widget { /** * php4 constructor */ function my\_widget() { my\_widget::\_\_construct(); } /** * php5 constructor */ function \_\_construct() { // actual widget processes } /** * echo the settings update form * * @param array $instance current settings */ function form($instance) { // outputs the options form on admin } /** * update a particular instance * * @param array $new\_instance new settings for this instance as input by the user via form() * @param array $old\_instance old settings for this instance * @return array settings to save or bool (false) to cancel saving */ function update($new\_instance, $old\_instance) { // processes widget options to be saved } /** * echo the widget content * * @param array $args display arguments including before\_title, after\_title, before\_widget, and after\_widget * @param array $instance the settings for the particular instance of this widget */ function widget($args, $instance) { // outputs the content of the widget } } register\_widget('my\_widget'); </code></pre>
<p>máte pro to dvě řešení:</p><ol> <li>použití <a href="http://codex.wordpress.org/custom\_fields">vlastní pole</a> toto je velmi komplexní průvodce: <a href="http://wparena.com/how-to/the-power-of-wordpress-custom-fields/">síla vlastních polí wordpress</a> . existuje několik velmi užitečných pluginů <a href="http://wordpress.org/extend/plugins/custom-field-template/">šablona vlastního pole</a> a <a href="http://wparena.com/how-to/the-power-of-wordpress-custom-fields/">kouzelná pole</a> , která použij je.</li> <li>použít <a href="http://codex.wordpress.org/wordpress\_widgets">widgety</a> . rozhraní api <a href="http://codex.wordpress.org/widgets\_api">widgets</a> umožňuje snadno vytvářet vlastní widgety.</li> </ol> <p>používám otto's <a href="http://wordpress.org/extend/plugins/simple-twitter-connect">jednoduchý twitter connect</a> . je to docela úžasné a nevyžaduje příliš mnoho konfigurace.</p> <p>pokud se dostáváte do bodu, kdy kód ve vašem <code>functions.php</code> tématu začíná přemoci vás, určitě bych řekl, že jste připraveni zvážit rozdělení do několika souborů. v tomto bodě mám sklon dělat to téměř druhou povahou.</p><h3>použít zahrnout soubory do souboru <code>functions.php</code> soubor</h3><p>vytvořím podadresář nazvaný<em> "zahrnuje" </em>pod mým adresářem motivů a segmentuji můj kód do souborů organizovaných podle toho, co mi v té době dává smysl (což znamená, že jsem neustále refactoring a pohybující se kód kolem webu se vyvíjí. ) také zřídka v reálném kódu v <code>functions.php</code>; vše jde v souborech zahrnujících; jen moje preference.</p><p>jen abych vám dal příklad zde je moje zkušební instalace, kterou používám k testování svých odpovědí na otázky zde na wordpress odpovědi. pokaždé, když odpovím na otázku, mám kód v případě, že ji potřebuji znovu. to není přesně to, co budete dělat pro živé stránky, ale ukazuje mechaniku rozdělení kódu:</p><pre><code>&lt;?php /* * functions.php * */ require\_once( \_\_dir\_\_ . '/includes/null-meta-compare.php'); require\_once( \_\_dir\_\_ . '/includes/older-examples.php'); require\_once( \_\_dir\_\_ . '/includes/wp-admin-menu-classes.php'); require\_once( \_\_dir\_\_ . '/includes/admin-menu-function-examples.php'); // wa: adding a taxonomy filter to admin list for a custom post type? // http://wordpress.stackexchange.com/questions/578/ require\_once( \_\_dir\_\_ . '/includes/cpt-filtering-in-admin.php'); require\_once( \_\_dir\_\_ . '/includes/category-fields.php'); require\_once( \_\_dir\_\_ . '/includes/post-list-shortcode.php'); require\_once( \_\_dir\_\_ . '/includes/car-type-urls.php'); require\_once( \_\_dir\_\_ . '/includes/buffer-all.php'); require\_once( \_\_dir\_\_ . '/includes/get-page-selector.php'); // http://wordpress.stackexchange.com/questions/907/ require\_once( \_\_dir\_\_ . '/includes/top-5-posts-per-category.php'); // http://wordpress.stackexchange.com/questions/951/ require\_once( \_\_dir\_\_ . '/includes/alternate-category-metabox.php'); // http://lists.automattic.com/pipermail/wp-hackers/2010-august/034384.html require\_once( \_\_dir\_\_ . '/includes/remove-status.php'); // http://wordpress.stackexchange.com/questions/1027/removing-the-your-backup-folder-might-be-visible-to-the-public-message-generate require\_once( \_\_dir\_\_ . '/includes/301-redirects.php'); </code></pre><h3>nebo vytvořit moduly</h3><p>další možností je začít seskupovat kód podle funkce a vytvořit si vlastní pluginy. pro mě začnu kódování v souboru <code>functions.php</code> a v době, kdy dostanu kód, jsem přesunul většinu kódu do pluginů.</p><h3>nicméně žádná významná výkonnost pochází z php kódové organizace</h3><p>na druhou stranu strukturování souborů php je 99% o vytvoření objednávky a udržovatelnosti a 1% o výkonu, pokud (organizování souborů <code>.js</code> a <code>.css</code>, které prohlížeč přes http volá, je zcela odlišný případ a má obrovský rozsah ale jak si organizujete svůj php kód na serveru do značné míry z hlediska výkonu nezáleží.</p><h3>organizace code je osobní preferencí</h3><p>a v neposlední řadě organizace kódu je osobní preference. někteří lidé by nenáviděli, jak organizuji kód, stejně jako bych mohl nenávidět, jak to taky dělají. najděte si něco, co se vám líbí a držte se ho, ale dovolte, aby se vaše strategie v průběhu času vyvíjela, abyste se s ní dozvěděli více a lépe se s ní spokojili.</p> klikneš na nový program, napíšeš kód a uložíš, případně zkompiluješ.Co se kódu týče je to vlastně jen o vynásobení čísla sama sebou. Pokud nevíš jak to udělat, věříš, že jsem si skoro jistý, že někde na internetu budou nějaké návody a toto bude někde na první straně? Jinými slovy.... tohle je ta nejzákladnější věc a pokud ani tu nedokážeš, tak asi s VB vůbec neumíš a bylo by nejlepší najít si nějaký tutorial, k čemu bude, že ti tady někdo napíše jeden řádek kódu, který si navíc najdeš za pár vteřin na Googlu, dřív než napíšeš blbej dotaz sem. <p>pokud nechcete používat <a href="http://codex.wordpress.org/create\_a\_network">více stránek</a> , přesto chcete mít více blogů se společným backendem, je jiný nápad:</p><ul> <li>přizpůsobte si téma motivu <a href="http://codex.wordpress.org/author\_templates">šablony autora</a> , aby každá domovská stránka autora blogu měla odlišný design</li> <li>vytvořit několik různých stylů, jeden na autora. použijte některou podmíněnou logiku k zobrazení příslušného šablony stylů při prohlížení jednotlivých příspěvků blogu, aby se příspěvek shodoval s návrhem domovské stránky autora.</li> <li>vytvořte několik různých <a href="http://www.quickonlinetips.com/archives/2007/11/how-to-create-multiple-dynamic-sidebars-for-wordpress-widgets/">postranních panelů</a> , jednoho na autora. to vám umožní mít různé widgety na autora. budete potřebovat podmíněnou logiku, abyste věděli, který boční panel se má také zobrazit.</li> </ul><p>samozřejmě, že by to vyžadovalo i trochu vylepšování. více míst může být méně práce.</p> <p>jedním ze způsobů, jak toho dosáhnout, by bylo mít náladové desky (více informací zde: <a href="http://www.viget.com/inspire/getting-moody/">http://www.viget.com/inspire/getting-moody/</a> ), zobrazující barevné palety, typografie, snímky, v podstatě cokoli souvisí s webem.</p> Pokud neumíte v kódu, je na to dobrý plugin Loco Translate, jednoduchý a vytvoříte si tam snadno překlady <p>ahoj <strong> @ jonathan sampson </strong>:</p><p>existují <strong> několik zásuvných modulů, které usnadňují vytváření uživatelských typů příspěvků </strong> a některé umožňují definovat také vlastní pole, a to v konkrétním pořadí:</p><ul> <li> <a href="http://www.wpeasyposttypes.com/"><strong> typy jednoduchých příspěvků wp </strong></a> </li> <li> <a href="http://wordpress.org/extend/plugins/gd-taxonomies-tools/"><strong> vlastní příspěvky a nástroje taxonomie gd </strong></a> </li> <li> <a href="http://www.strangework.com/wordpress-plugins/custom-post-type-ui/"><strong> ui uživatelského typu příspěvku </strong></a> </li> <li> <a href="http://wordpress.org/extend/plugins/simple-fields/"><strong> jednoduchá pole </strong></a> </li> </ul><p>jak jsem zmínil výše, pracoval jsem na tom, který neposkytuje uživatelské rozhraní, jako jsou tyto, namísto toho rozšiřitelné rozhraní api pro složité typy polí (a také jednoduché). pro distribuci. možná za pár týdnů.</p><p>tyto pluginy uvedené výše by měly splňovat vaše základní potřeby a já se pokusím, aby se moje kompatibilní s daty uloženými všemi těmito v budoucnu v případě, že se rozhodnete použít moje v budoucnu.</p><p>můžete také najít tento příspěvek trochu pomoci také:</p><ul> <li> <a href="https://wordpress.stackexchange.com/questions/128/tips-for-using-wordpress-as-a-cms/187#187"><strong> tipy pro používání wordpressu jako cms? </strong></a> </li> </ul> <p>používám mnohem rychlejší a jednodušší způsob, jak vytvořit lokální kopii kodexu bez instalace lokálního serveru a bez instalace kopie mediawiki, nazvané <a href="https://addons.mozilla.org/en-us/firefox/addon/scrapbook/">scrapbook</a> což je rozšíření firefoxu, které vám pomůže ukládat webové stránky a spravovat sbírka. klíčové vlastnosti jsou lehkost, rychlost, přesnost a vícejazyčná podpora.</p><p>pomocí funkce uložit web (in-depth capture) můžete nastavit adresáře, které chcete uložit, což by bylo ve vašem případě <code>function reference</code> a <code>template tags</code></p><p><img src="https://i.stack.imgur.com/kw8p0.jpg" alt="enter image description here"></p><p>můžete také organizovat své sbírky stejně jako záložky, upravovat uložené soubory a zvýrazňovat klíčové části stránek a nejlepší na tom je vestavěné fulltextové vyhledávání.</p> <p>změna výchozího widgetu by byla dost komplikovaná.</p><p>můžete však napsat svůj vlastní krátký kód a funkci pro získání požadovaného seznamu.</p><p>hádám, že chcete mít ve svém widgetu neuspořádaný seznam?</p><p>dejte to do funkcí theme.php:</p><pre><code>add\_shortcode('archive\_by\_year\_and\_month','get\_archive\_by\_year\_and\_month'); function get\_archive\_by\_year\_and\_month($atts=array()){ global $wpdb; $years = $wpdb-&gt;get\_col("select distinct year(post\_date) from $wpdb-&gt;posts where post\_type = 'post' and post\_status = 'publish' order by post\_date desc"); if($years){ $rueckgabe = '&lt;ul&gt;'; foreach($years as $year){ $rueckgabe.='&lt;li class="jahr"&gt;&lt;a href="'.get\_year\_link($year).'"&gt;'.$year.'&lt;/a&gt;'; $rueckgabe.='&lt;ul class="monthlist"&gt;'; $months = $wpdb-&gt;get\_col($wpdb-&gt;prepare("select distinct month(post\_date) from $wpdb-&gt;posts where post\_type='post' and post\_status='publish' and year(post\_date) = %d order by post\_date asc",$year)); foreach($months as $month){ $dateobj = datetime::createfromformat('!m', $month); $monthname = $dateobj-&gt;format('f'); $rueckgabe.='&lt;li class="month"&gt;&lt;a href="'.get\_month\_link($year,$month).'"&gt;'.$monthname.'&lt;/a&gt;&lt;/li&gt;'; } $rueckgabe.='&lt;/ul&gt;'; $rueckgabe.='&lt;/li&gt;'; } $rueckgabe.='&lt;/ul&gt;'; } return $rueckgabe; } </code></pre><p>poté vložte textovou widget do postranního panelu a zadejte krátký kód:</p><pre><code>[archive\_by\_year\_and\_month] </code></pre><p>hit save and voila: měli byste dostat svůj seznam podle svého přání.</p><p>happy coding!</p>