PHP İşlevli HTML Şablonu Sayfasına Dönme


10

Siteme eklemek için kısa kod kullanabileceğim bir form oluşturmak istiyorum.

HTML parçasını ayrı bir dosyada oluşturabilir ve daha sonra bir PHP kısa koduyla ekleyebilirsem (sayfanın mantığını kısa kod haline getirme mekaniğinden ayırmak için).

Bunu nasıl yapabilirim?

-- Güncelleme --

Yaptığım şey bu: İki dosyam var. Biri 'profiletemplate.php', diğeri 'scodes' adını verdi. Her ikisi de sitem için onları başlatan bir init.php ile yaptığım bir eklentinin parçası. İşte içerikleri:

init.php

<?php
require_once(dirname(__FILE__).'/pages/scodes.php');
?>

scodes.php

function jf_testcode() {
    include dirname(__FILE__) . 'profiletemplate.php';
}

add_shortcode('testfield', 'jf_testcode');

profiletemplate.php

<?php // Template for my form shortcode ?>
<form>
Testing
</form>

Daha sonra sitemdeki bir sayfada [testfield] kısa kodunu kullanıyorum.

Güncelleme 2

Dolayısıyla bu yöntem çalışıyor, ancak kısa kodun çağrıldığı HTML'yi eklemiyor. Bunun yerine, içeriği sayfanın üst kısmına eklemek gibi (bir işlevde 'dönüş' Test '' yerine 'echo' Testing '' dedim gibi.


Yeni başlayanlar için bir PHP dosyasına düz HTML yazabilirsiniz. Daha sonra functions.php, bu belirli dosyayı gerektiren / içeren bir işlev yazmanız ve işlevinizi add_shortcode()çağırmak için istediğiniz kısa kodu ayarlamanız gerekir.
tfrommen

Yanıtlar:


24

Önceki yorumumda unuttuğum bir şey, kısa kodların içeriği döndürmesi , hem önerilen hem de includealternatifim get_template_partdoğrudan içeriği (kısa kodun adı yerine sayfanızın en üstünde görünen içerikle gördüğünüz şey) çıktı. Buna karşı koymak için çıktı tamponlaması kullanmalıyız .

Function.php dosyasında (veya sitenizin siteye özgü işlevler dosyasında) kısa kodu tanımlayın .

function my_form_shortcode() {
    ob_start();
    get_template_part('my_form_template');
    return ob_get_clean();   
} 
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

Ardından tema klasörünüzde my_form_template.php, kısa kodu yerleştirdiğiniz her yere yüklenecek adlı bir dosyaya ihtiyacınız vardır .


Mükemmel! Bu harika çalışıyor!
William

Aynı şeyi bir eklenti içinde yapmaya çalışırsanız kullanmanız gerekir. Bkz. Wordpress.stackexchange.com/a/124794/75817
patrics

Vay be ... benim gün kurtardı .. harika kod
dipak_pusti

2

İşlevlerinize aşağıdakileri ekleyin. Php :

function my_form_shortcode() {
    include dirname( __FILE__ ) . 'my_form_template.php';
} // function my_form_shortcode
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

Dosya my_form_template.php :

<?php // Template for my form shortcode ?>
<form ...>
    FIELDS
</form>

1
get_template_part()Kısa kod işlevinizin içinde de kullanabilirsiniz .
helgatheviking

@ Tf'nin çözümünü uygulamaya çalıştım - Yazıma bir güncelleme ekledim
William

@helgatheviking - bu işlev nasıl çalışır?
William

Get_template_part () açıklaması için kodeksine bakın ve kısa kodunuzla birlikte nasıl kullanacağınıza ilişkin cevabımı görün.
Mart'ta helgatheviking
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.