vytvořit mobilní stránky se stejným obsahem jen jiné téma
<p>mám wordpress stránky a chcete vytvořit jiné téma pro mobilní telefony. chtěl bych vytvořit subdoménu, jako je m.domain.com, která bude používat mobilní optimalizovaný motiv hodně odlišný od motivu desktopové verze. chápu, že multisite zvládne problém s subdoménou, ale chci, aby veškerý obsah, vlastní příspěvky, pluginy, atd. byly v jednom místě v admin.</p><p>je tam něco, co mi umožní vytvořit mobilní subdoménu a mít samostatné téma aplikované na tento subdoménový web při zachování obsahu, příspěvků, pluginů v jednom místě v admin?</p><p>dík!</p>
<p>zkuste si přečíst tento užitečný článek: <a href="http://digwp.com/2009/12/redirect-mobile-users-to-mobile-theme/">http://digwp.com/2009/12/redirect-mobile-users-to-mobile-theme/</a> </p>
<p>@ eamann má skvělou odpověď, pokud chcete různé rozvržení pro různé kategorie. otoh <strong> pokud chcete změnit css například na jinou barvu pozadí pro každou kategorii </strong>, zjistíte, že většina témat bude obsahovat kategorii slim jako css třídy na elementu <code>&lt;body&gt;</code> a/nebo případně dalších html prvcích, které jsou výstupem motivu. (a to iv případě, že vaše téma byste nemohli vždy přidat tuto funkci sami.)</p><p>například téma twentyten to dělá přesně; pro následující adresu url:</p><blockquote> <p> <a href="http://example.com/category/category-1/">http://example.com/category/category-1/</a> </p> </blockquote><p>jak vypadá prvek <code>&lt;body&gt;</code> takto:</p><blockquote> <p><code>&lt;body class="archive category category-category-1"&gt;</code></p> </blockquote><p>s vědomím výše uvedeného byste mohli přidat následující styly do souboru <code>style.css</code> vašeho motivu, který bude mít různou barvu pozadí pro každou stránku (jsem samozřejmě velmi zjednodušující, vaše skutečné css by bylo jistě sofistikovanější):</p><pre><code>/* style.css */ body.category-category-1 { background-color: red; } body.category-category-2 { background-color: green; } body.category-category-3 { background-color: blue; } </code></pre><p>vše, co opravdu potřebujete udělat, je zjistit, zda vaše téma to dělá nebo ne je <strong> zobrazit zdroj </strong> na stránkách kategorie zájmu a vyhledat vaši kategorii slug.</p><h3>použijte podřízený motiv</h3><p>pravděpodobně nechcete měnit <code>style.css</code> motivu; pravděpodobně budete chtít vytvořit <a href="https://wordpress.stackexchange.com/questions/290/customizing-a-wordpress-theme-without-changing-it/291#291"><strong> <em> child theme </em> </strong></a> místo. zde je několik odpovědí, kde mluvím o dětských tématech:</p><ul> <li> <a href="https://wordpress.stackexchange.com/questions/290/customizing-a-wordpress-theme-without-changing-it/291#291">přizpůsobení motivu wordpress bez jeho změny?</a> </li> <li> <a href="https://wordpress.stackexchange.com/questions/462/making-the-header-on-the-twenty-ten-theme-less-tall/463#463">tvorba záhlaví na téma téma dvacet deset méně tall?</a> </li> </ul><p>všimněte si, že ne všechny motivy podporují podřízené motivy. v případě těchto témat budete muset více zkoumat, jak jsou rozšířeny.</p> <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>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>co to bude:</p><p>1) lepší pro vaše uživatele?</p><p>pokud je rozložení na více domén usnadní uživatelům navigaci a používání obsahu, vydejte se touto cestou. pokud to všechno umístíte na jedno místo, udělá to, pak jděte touto cestou. chcete se ujistit, že neztratíte ze zřetele větší obrázek, který je zážitkem pro uživatele. čím je lepší, tím je větší pravděpodobnost, že získáte popularitu (tj. větší provoz, který by člověk předpokládal, že je vaším hlavním cílem) a zvýšíte pravděpodobnost, že získáte přirozené a snad i cenné příchozí odkazy od ostatních webmasterů, kteří mají rádi váš web. zaměření na uživatele je mnohem důležitější a lepší pro seo, poté se zaměřuje na vyhledávače.</p><p>2) jednodušší pro údržbu?</p><p>seo seo na webu je samozřejmě důležité a chcete jej maximalizovat, protože je to vše, co máte pod kontrolou. ale nedělejte ze svých stránek zvíře, které byste měli udržovat jen kvůli seo. místo, které je obtížné udržovat, se nakonec zanedbává. možná ne zpočátku a možná jen postupně v průběhu času. stává se to a má za následek zhoršení uživatelské zkušenosti. chcete se ujistit, že je váš web snadno udržovatelný, aby byl uživatelský dojem co nejlepší. pokud šíření obsahu na více doménách neztěžuje váš život, může být užitečné provést výše uvedené výhody. ale obvykle existuje režie s provozováním více webů, takže to nemusí být za zmatek.</p><p>já osobně bych to všechno nechal na jedné doméně. je to veškerý související obsah a je pravděpodobné, že uživatelé budou při návštěvě vašeho webu hledat více než jeden sport. udržovat je na jednom místě je méně matoucí. můžete udělat spoustu s url a názvy stránek atd., abyste maximalizovali seo, aniž byste museli pro každou sekci získat samostatné domény.</p> Myslím, že chceš něco co nejde. Aby se webová stránka přepla do mobilní verze tzv. rezistentního zobrazení, musí být ta stránka taky tak napsána. Stránka, která je vytvořena jak pro normální monitor tak pro mobil nebo tablet má na začátku test na čem se stránka bude zobrazovat. Nedá se to tedy vynutit.Ahoj <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>největší wordpress giveaways jsou mezi <code>&lt;head&gt; &lt;/head&gt;</code> tagy.</p><p><strong> příklad výstupu obsahu wordpressu podle tématu twentyten a jak odstranit: </strong></p><pre><code>&lt;link rel="profile" href="http://gmpg.org/xfn/11" /&gt; </code></pre><p>odebrat přímo z header.php</p><pre><code> &lt;link rel="stylesheet" type="text/css" media="all" href="http://example.com/wp-content/themes/twentyten/style.css" /&gt; </code></pre><p>skrýt wordpress voláním šablony stylů z jiného umístění a změňte adresář wp-content. wordpress vyžaduje, aby vaše téma obsahovalo některé základní informace v horní části stylu style.css (style.css musí být v kořenovém adresáři motivů). budete muset vytvořit alternativní css a zavolat z hlavy. wordpress nevyžaduje, abyste používali motivy style.css, pouze to vyžaduje, aby byl v adresáři motivů.</p><p>odebrat přímo z header.php</p><pre><code>&lt;link rel="alternate" type="application/rss+xml" title="example blog &amp;raquo; feed" href="http://example.com/feed/" /&gt; &lt;link rel="alternate" type="application/rss+xml" title="example blog &amp;raquo; comments feed" href="http://example.com/comments/feed/" /&gt; &lt;link rel="edituri" type="application/rsd+xml" title="rsd" href="http://example.com/xmlrpc.php?rsd" /&gt; &lt;link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" /&gt; &lt;link rel='index' title='example blog' href='http://example.com/' /&gt; &lt;meta name="generator" content="wordpress 3.1-alpha" /&gt; </code></pre><p>chcete-li tyto dodatečné odkazy odebrat, můžete přidat filtr do funkcí .php</p><pre><code>// remove junk from head remove\_action('wp\_head', 'rsd\_link'); remove\_action('wp\_head', 'wp\_generator'); remove\_action('wp\_head', 'feed\_links', 2); remove\_action('wp\_head', 'index\_rel\_link'); remove\_action('wp\_head', 'wlwmanifest\_link'); remove\_action('wp\_head', 'feed\_links\_extra', 3); remove\_action('wp\_head', 'start\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'parent\_post\_rel\_link', 10, 0); remove\_action('wp\_head', 'adjacent\_posts\_rel\_link', 10, 0); </code></pre><p>můžete změnit svůj adresář pluginů a adresář wp-content ve vašem souboru wp-config.php, ale můžete mít nějaké problémy, pokud váš motiv nebo pluginy nepoužívají správnou metodu pro volání souborů.</p><pre><code>define( 'wp\_content\_dir', $\_server['document\_root'] . '/new-wp-content' ); </code></pre><p>nastavte wp\_content\_url na úplný identifikátor uri tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_content\_url', 'http://example/new-wp-content'); </code></pre><p>volitelné nastavte wp\_plugin\_dir na úplnou místní cestu tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_plugin\_dir', $\_server['document\_root'] . '/new-wp-content/new-plugins' ); </code></pre><p>nastavte wp\_plugin\_url na úplný identifikátor uri tohoto adresáře (bez koncového lomítka), např.</p><pre><code>define( 'wp\_plugin\_url', 'http://example/new-wp-content/new-plugins'); </code></pre><p><strong>pluginy</strong></p><p>uvědomte si, že některé pluginy jako akismat, all in one seo, w3-total-cache, super cache a mnoho dalších přidávají komentáře k výstupu html. většina z nich lze snadno upravit, aby se odstranily komentáře, ale vaše změny budou přepsány kdykoliv aktualizací pluginů.</p><p><strong> wp-includes </strong></p><p>adresář wp-includes uchovává jquery a různé další soubory js, které témata nebo pluginy budou volat pomocí wp\_enqueue\_script (). chcete-li to změnit, musíte zrušit registraci výchozích skriptů aplikace wordpress a zaregistrovat nové umístění. přidat do funkcí.php:</p><pre><code>function my\_init() { if (!is\_admin()) { // comment out the next two lines to load the local copy of jquery wp\_deregister\_script('jquery'); wp\_register\_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.3.2'); wp\_enqueue\_script('jquery'); } } add\_action('init', 'my\_init'); </code></pre><p>to bude nutné provést s každým skriptem používaným vaším motivem nebo zásuvnými moduly.</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> <p>vytvořil jsem plugin, který dělá něco podobného (tzv. multisite post display <a href="https://wordpress.org/plugins/multisite-post-reader/">https://wordpress.org/plugins/multisite-post-reader/</a> ). zobrazuje příspěvky ze všech podstránek.</p><p>kód tam může být užitečný pro to, co děláte. jste vítáni kopat do něj a používat kód pomoci s vaším projektem. (koneckonců jsem použil útržky kódů jiných lidí, abych to vytvořil.)</p><p>napsal jsem to poté, co jsem udělal multisite media display, protože jsem chtěl způsob, jak zobrazit média z podřízených stránek na jedné stránce, a nemohl jsem najít žádný plugin, který by to dělal. oba programy byly užitečné pro sledování odeslaných médií a obsahu z mého multisite.</p><p>volný, open source, a to vše. doufám, že je to užitečné.</p> "Kdyby ale šlo použít pouze telefon...."Naprogramovat se dá cokoliv, ale problém je s uspáváním mobilu.V momentě, kdy se uspí je problém jej softwarově "vzbudit".Problém je jej vzbudit - aby udělal snímek a následně jej poslal na web.Toto píši jen pro případ, že bys chtěl programovat nějakou nativní app pro android, co tě čeká za hlavní potíž. ![](/Client.Images/smileys/4.gif)